dsh-plugin-guide 0.3.2 → 0.3.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.
Files changed (100) hide show
  1. package/README.es.md +1 -1
  2. package/README.hi.md +1 -1
  3. package/README.md +1 -1
  4. package/README.pt.md +1 -1
  5. package/README.zh.md +1 -1
  6. package/dist/dsh-plugin-dev.js +3 -3
  7. package/guide/plugin-dev-guide.md +1 -1
  8. package/guide/quick-reference.es.md +1 -1
  9. package/guide/quick-reference.md +1 -1
  10. package/guide/quick-reference.pt.md +1 -1
  11. package/guide/quick-reference.zh-CN.md +1 -1
  12. package/package.json +3 -3
  13. package/references/official-docs/AGENTS.md +1 -1
  14. package/references/official-docs/SNAPSHOT.md +3 -3
  15. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  16. package/references/official-docs/docs/architecture.md +2 -1
  17. package/references/official-docs/docs/architecture.zh.md +2 -1
  18. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  19. package/references/official-docs/docs/capability-seams.md +3 -1
  20. package/references/official-docs/docs/capability-seams.zh.md +3 -1
  21. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  22. package/references/official-docs/docs/config-catalog.md +96 -54
  23. package/references/official-docs/docs/config-catalog.zh.md +93 -51
  24. package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +2 -2
  25. package/references/official-docs/docs/cookbook/adding-a-package.md +1 -1
  26. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +1 -1
  27. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  28. package/references/official-docs/docs/event-producer-consumer.md +17 -17
  29. package/references/official-docs/docs/event-producer-consumer.zh.md +17 -17
  30. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  31. package/references/official-docs/docs/module-graph.md +193 -361
  32. package/references/official-docs/docs/module-graph.zh.md +193 -361
  33. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  34. package/references/official-docs/docs/persistence-catalog.md +41 -41
  35. package/references/official-docs/docs/persistence-catalog.zh.md +40 -40
  36. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +2 -2
  37. package/references/official-docs/docs/subsystems/agent-team.md +4 -3
  38. package/references/official-docs/docs/subsystems/agent-team.zh.md +4 -3
  39. package/references/official-docs/docs/subsystems/code-runtime.i18n.yaml +2 -2
  40. package/references/official-docs/docs/subsystems/code-runtime.md +7 -3
  41. package/references/official-docs/docs/subsystems/code-runtime.zh.md +7 -3
  42. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  43. package/references/official-docs/docs/subsystems/commands.md +1 -1
  44. package/references/official-docs/docs/subsystems/commands.zh.md +1 -1
  45. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  46. package/references/official-docs/docs/subsystems/compaction.md +9 -9
  47. package/references/official-docs/docs/subsystems/compaction.zh.md +9 -9
  48. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  49. package/references/official-docs/docs/subsystems/core.md +4 -3
  50. package/references/official-docs/docs/subsystems/core.zh.md +4 -3
  51. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  52. package/references/official-docs/docs/subsystems/feedback.md +2 -2
  53. package/references/official-docs/docs/subsystems/feedback.zh.md +2 -2
  54. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  55. package/references/official-docs/docs/subsystems/persistence.md +179 -187
  56. package/references/official-docs/docs/subsystems/persistence.zh.md +179 -187
  57. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  58. package/references/official-docs/docs/subsystems/schedule.md +1 -1
  59. package/references/official-docs/docs/subsystems/schedule.zh.md +1 -1
  60. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  61. package/references/official-docs/docs/subsystems/session-projection.md +21 -17
  62. package/references/official-docs/docs/subsystems/session-projection.zh.md +21 -17
  63. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
  64. package/references/official-docs/docs/subsystems/session-query.md +19 -13
  65. package/references/official-docs/docs/subsystems/session-query.zh.md +19 -13
  66. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  67. package/references/official-docs/docs/subsystems/session-title.md +5 -5
  68. package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
  69. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  70. package/references/official-docs/docs/subsystems/session.md +94 -34
  71. package/references/official-docs/docs/subsystems/session.zh.md +94 -34
  72. package/references/official-docs/docs/subsystems/slots.i18n.yaml +2 -2
  73. package/references/official-docs/docs/subsystems/slots.md +1 -0
  74. package/references/official-docs/docs/subsystems/slots.zh.md +1 -0
  75. package/references/official-docs/docs/subsystems/storage.i18n.yaml +2 -2
  76. package/references/official-docs/docs/subsystems/storage.md +28 -5
  77. package/references/official-docs/docs/subsystems/storage.zh.md +28 -5
  78. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  79. package/references/official-docs/docs/subsystems/subagent.md +32 -88
  80. package/references/official-docs/docs/subsystems/subagent.zh.md +31 -87
  81. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  82. package/references/official-docs/docs/subsystems/token-meter.md +2 -2
  83. package/references/official-docs/docs/subsystems/token-meter.zh.md +2 -2
  84. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  85. package/references/official-docs/docs/tool-catalog.md +9 -63
  86. package/references/official-docs/docs/tool-catalog.zh.md +8 -62
  87. package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
  88. package/references/official-docs/docs/web-styling.md +3 -0
  89. package/references/official-docs/docs/web-styling.zh.md +3 -0
  90. package/references/official-docs/packages/AGENTS.md +2 -2
  91. package/templates/js/README.es.md +1 -1
  92. package/templates/js/README.hi.md +1 -1
  93. package/templates/js/README.md +1 -1
  94. package/templates/js/README.pt.md +1 -1
  95. package/templates/js/README.zh.md +1 -1
  96. package/templates/ts/README.es.md +1 -1
  97. package/templates/ts/README.hi.md +1 -1
  98. package/templates/ts/README.md +1 -1
  99. package/templates/ts/README.pt.md +1 -1
  100. package/templates/ts/README.zh.md +1 -1
@@ -111,7 +111,7 @@ export interface Config {
111
111
 
112
112
  Depends on: [`AgentOptions`](subsystems/core.md) · [`SessionId`](subsystems/core.md)
113
113
 
114
- Source: [`packages/core/agent-loop/src/index.ts:311`](../packages/core/agent-loop/src/index.ts)
114
+ Source: [`packages/core/agent-loop/src/index.ts:318`](../packages/core/agent-loop/src/index.ts)
115
115
 
116
116
  <a id="deepseek-aidsh-agent-presets"></a>
117
117
 
@@ -208,14 +208,16 @@ Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions
208
208
  ```ts config-catalog
209
209
  /** Session Controller deployment policy. */
210
210
  export interface Config {
211
- /** Maximum cold Session artifact size eligible for one full projection observation. */
211
+ /** Maximum stat-reported event count eligible for one full cold projection observation; `0` disables the event-count gate. */
212
+ readonly coldBlankProbeMaxEvents?: number
213
+ /** Maximum stat-reported artifact byte size eligible for one full cold projection observation; `0` disables the byte-size gate. */
212
214
  readonly coldBlankProbeMaxBytes?: number
213
215
  /** Override platform desktop-opener detection. */
214
216
  readonly nativeOpen?: boolean
215
217
  }
216
218
  ```
217
219
 
218
- Source: [`packages/api/session-controller/src/index.ts:67`](../packages/api/session-controller/src/index.ts)
220
+ Source: [`packages/api/session-controller/src/index.ts:72`](../packages/api/session-controller/src/index.ts)
219
221
 
220
222
  <a id="deepseek-aidsh-api-settings-controller"></a>
221
223
 
@@ -457,7 +459,7 @@ export interface ToolResultPruneConfig {
457
459
  }
458
460
  ```
459
461
 
460
- Source: [`packages/compaction/compaction-tool-result-pruner/src/types.ts:4`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
462
+ Source: [`packages/compaction/compaction-tool-result-pruner/src/types.ts:5`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
461
463
 
462
464
  <a id="deepseek-aidsh-cordis-host-runner"></a>
463
465
 
@@ -535,7 +537,74 @@ export interface Config {
535
537
  }
536
538
  ```
537
539
 
538
- Source: [`packages/experimental/agent-team/src/types.ts:131`](../packages/experimental/agent-team/src/types.ts)
540
+ Source: [`packages/experimental/agent-team/src/types.ts:130`](../packages/experimental/agent-team/src/types.ts)
541
+
542
+ <a id="deepseek-aidsh-experimental-code-runtime-python"></a>
543
+
544
+ ## `@deepseek-ai/dsh-experimental-code-runtime-python`
545
+
546
+ ```ts config-catalog
547
+ /** Plugin config: every cap, changeable from `cordis.yml` (no hardcoded tunables). */
548
+ export interface Config {
549
+ /**
550
+ * RLIMIT_CPU in whole seconds (a positive integer — `setrlimit` in the child
551
+ * rejects a float). The child sets the soft limit to `cpuSeconds` and the
552
+ * hard limit to `cpuSeconds + 1`: the kernel delivers SIGXCPU at the soft
553
+ * limit, which the host classifies as a `timeout`; the +1s hard limit is a
554
+ * SIGKILL backstop for a program that traps SIGXCPU. Granularity is seconds —
555
+ * a coarser counterpart to the worker backend's millisecond `computeMs`.
556
+ */
557
+ cpuSeconds?: number
558
+ /** Wall-clock ceiling in milliseconds; backstops CPU time for programs awaiting a promise nobody resolves. */
559
+ maxWallMs?: number
560
+ /**
561
+ * RLIMIT_AS in mebibytes; caps address space so a runaway allocation fails
562
+ * cleanly. Not applied on Darwin, where the dyld shared cache mapped into
563
+ * every process at exec exceeds any practical cap and the kernel rejects
564
+ * the call; `cpuSeconds` and `maxWallMs` still bound the run there. Bounds
565
+ * `maxLogBytes`/`maxValueBytes` at load on EVERY platform (this static check
566
+ * runs on Darwin too, where only the runtime `setrlimit` is skipped): each
567
+ * budget times a worst-case Unicode expansion must fit this byte count minus a
568
+ * fixed interpreter baseline, so a near-budget output cannot breach the address
569
+ * space during the child's build-and-encode.
570
+ */
571
+ addressSpaceMb?: number
572
+ /**
573
+ * Shared byte budget for captured log text (host-side ledger). Bounded at load
574
+ * against `addressSpaceMb`: the child builds and encodes a near-budget entry
575
+ * under RLIMIT_AS with several copies live at once, so this cap times the
576
+ * worst-case Unicode expansion must fit the address space left after the
577
+ * interpreter baseline (see `addressSpaceMb`) — a load-time rejection, not a
578
+ * runtime clamp. Also bounded at load by the host's configured heap like
579
+ * `maxValueBytes` (see its JSDoc): the effective frame cap minus the frame
580
+ * envelope.
581
+ */
582
+ maxLogBytes?: number
583
+ /**
584
+ * Byte cap for the completion value. Bounded at load against `addressSpaceMb`
585
+ * the same way `maxLogBytes` is: the child builds and encodes a near-budget
586
+ * value under RLIMIT_AS with several copies live at once, so this cap times the
587
+ * worst-case Unicode expansion must fit the address space left after the
588
+ * interpreter baseline. Both budgets are ALSO bounded at load by the host's
589
+ * configured heap: the effective frame cap (the protocol cap, or a lower
590
+ * heap-derived ceiling when the host heap cannot safely parse a near-cap
591
+ * frame — see `hostFrameParseCeiling`) minus the frame envelope, so a budget
592
+ * whose honest frame could OOM the host's own JSON.parse is rejected up
593
+ * front.
594
+ */
595
+ maxValueBytes?: number
596
+ /** SIGTERM→SIGKILL grace period on kill, matching bash-local's default. */
597
+ graceMs?: number
598
+ /**
599
+ * Absolute path, relative path, or basename of a CPython 3.10+ interpreter.
600
+ * Resolved and validated once at plugin load under a five-second force-kill
601
+ * deadline; a basename searches `PATH`.
602
+ */
603
+ pythonBin?: string
604
+ }
605
+ ```
606
+
607
+ Source: [`packages/experimental/code-runtime-python/src/index.ts:42`](../packages/experimental/code-runtime-python/src/index.ts)
539
608
 
540
609
  <a id="deepseek-aidsh-experimental-inspector"></a>
541
610
 
@@ -696,7 +765,7 @@ export interface Config {
696
765
  }
697
766
  ```
698
767
 
699
- Source: [`packages/goal/goal/src/index.ts:171`](../packages/goal/goal/src/index.ts)
768
+ Source: [`packages/goal/goal/src/index.ts:172`](../packages/goal/goal/src/index.ts)
700
769
 
701
770
  <a id="deepseek-aidsh-headless"></a>
702
771
 
@@ -712,7 +781,7 @@ export interface Config {
712
781
  }
713
782
  ```
714
783
 
715
- Source: [`packages/bundle/headless/src/index.ts:33`](../packages/bundle/headless/src/index.ts)
784
+ Source: [`packages/bundle/headless/src/index.ts:34`](../packages/bundle/headless/src/index.ts)
716
785
 
717
786
  <a id="deepseek-aidsh-hooks-claude-code"></a>
718
787
 
@@ -750,7 +819,7 @@ export interface Config {
750
819
  }
751
820
  ```
752
821
 
753
- Source: [`packages/hooks/hooks-claude-code/src/index.ts:46`](../packages/hooks/hooks-claude-code/src/index.ts)
822
+ Source: [`packages/hooks/hooks-claude-code/src/index.ts:45`](../packages/hooks/hooks-claude-code/src/index.ts)
754
823
 
755
824
  <a id="deepseek-aidsh-hooks-codex"></a>
756
825
 
@@ -777,7 +846,7 @@ export interface Config {
777
846
  }
778
847
  ```
779
848
 
780
- Source: [`packages/hooks/hooks-codex/src/index.ts:45`](../packages/hooks/hooks-codex/src/index.ts)
849
+ Source: [`packages/hooks/hooks-codex/src/index.ts:44`](../packages/hooks/hooks-codex/src/index.ts)
781
850
 
782
851
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
783
852
 
@@ -1024,7 +1093,7 @@ export interface PiAiProviderProfile {
1024
1093
  * to answer instead.
1025
1094
  */
1026
1095
  defaultInput?: PiAiModality[]
1027
- /** Provider request headers; Harness attribution wins reserved names. */
1096
+ /** Provider request headers, validated against Fetch when the profile resolves; Harness attribution wins reserved names. */
1028
1097
  headers?: Record<string, string>
1029
1098
  /** Provider-neutral pi-ai reasoning level. */
1030
1099
  reasoning?: ModelThinkingLevel
@@ -1288,7 +1357,7 @@ export interface ReplayModelConfig {
1288
1357
 
1289
1358
  Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1290
1359
 
1291
- Source: [`packages/test-support/llm-replay/src/index.ts:919`](../packages/test-support/llm-replay/src/index.ts)
1360
+ Source: [`packages/test-support/llm-replay/src/index.ts:924`](../packages/test-support/llm-replay/src/index.ts)
1292
1361
 
1293
1362
  <a id="deepseek-aidsh-llm-retry"></a>
1294
1363
 
@@ -1432,7 +1501,7 @@ export interface Config {
1432
1501
  }
1433
1502
  ```
1434
1503
 
1435
- Source: [`packages/feedback/message-feedback/src/index.ts:49`](../packages/feedback/message-feedback/src/index.ts)
1504
+ Source: [`packages/feedback/message-feedback/src/index.ts:50`](../packages/feedback/message-feedback/src/index.ts)
1436
1505
 
1437
1506
  <a id="deepseek-aidsh-permission-presets"></a>
1438
1507
 
@@ -1733,7 +1802,7 @@ export interface Config {
1733
1802
  }
1734
1803
  ```
1735
1804
 
1736
- Source: [`packages/session/session-log-deepseek/src/index.ts:23`](../packages/session/session-log-deepseek/src/index.ts)
1805
+ Source: [`packages/session/session-log-deepseek/src/index.ts:36`](../packages/session/session-log-deepseek/src/index.ts)
1737
1806
 
1738
1807
  <a id="deepseek-aidsh-session-log-export"></a>
1739
1808
 
@@ -1752,14 +1821,12 @@ export interface Config {
1752
1821
  export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1753
1822
  ```
1754
1823
 
1755
- Source: [`packages/session-query/session-log-export/src/index.ts:42`](../packages/session-query/session-log-export/src/index.ts)
1824
+ Source: [`packages/session-query/session-log-export/src/index.ts:45`](../packages/session-query/session-log-export/src/index.ts)
1756
1825
 
1757
1826
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1758
1827
 
1759
1828
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
1760
1829
 
1761
- Requires: `sessions`
1762
-
1763
1830
  ```ts config-catalog
1764
1831
  /** Plugin config: where the JSONL backend keeps its session logs, and the packed-row write switch. */
1765
1832
  export interface Config {
@@ -1781,17 +1848,13 @@ export interface Config {
1781
1848
  packChunks?: boolean
1782
1849
  /** Physical encoding; defaults to checksummed Zstandard frames. */
1783
1850
  compression?: JsonlCompression
1784
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1785
- preparedSessionCacheSize?: number
1786
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1787
- writeBatchMaxDelayMs?: number
1788
1851
  }
1789
1852
 
1790
1853
  /** Physical encoding selected for JSONL session artifacts. */
1791
1854
  export type JsonlCompression = 'zstd' | 'none'
1792
1855
  ```
1793
1856
 
1794
- Source: [`packages/session/session-persistence-jsonl/src/index.ts:62`](../packages/session/session-persistence-jsonl/src/index.ts)
1857
+ Source: [`packages/session/session-persistence-jsonl/src/index.ts:73`](../packages/session/session-persistence-jsonl/src/index.ts)
1795
1858
 
1796
1859
  <a id="deepseek-aidsh-session-projection-cache"></a>
1797
1860
 
@@ -1815,7 +1878,7 @@ export interface Config {
1815
1878
  }
1816
1879
  ```
1817
1880
 
1818
- Source: [`packages/session/session-projection-cache/src/index.ts:48`](../packages/session/session-projection-cache/src/index.ts)
1881
+ Source: [`packages/session/session-projection-cache/src/index.ts:55`](../packages/session/session-projection-cache/src/index.ts)
1819
1882
 
1820
1883
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1821
1884
 
@@ -1848,8 +1911,10 @@ export interface Config extends SessionQueryConfig {
1848
1911
  maxLimit?: number
1849
1912
  /** Maximum snippet length in Unicode code points. Defaults to 240. */
1850
1913
  snippetChars?: number
1851
- /** Maximum concurrent persisted-log inspections in one inherited batch read. Defaults to 4. */
1852
- persistedInspectConcurrency?: number
1914
+ /** Maximum concurrent persisted-log reads in one inherited batch read. Defaults to 4. */
1915
+ persistedReadConcurrency?: number
1916
+ /** Maximum cold prepared-Session observations the inherited reader retains for reuse. Defaults to 5. */
1917
+ preparedSessionCacheSize?: number
1853
1918
  }
1854
1919
 
1855
1920
  /** SQLite module/handle opening phase; `never` disables full-text search entirely. */
@@ -1861,7 +1926,7 @@ export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1861
1926
 
1862
1927
  Depends on: [`SessionQueryConfig`](../packages/session-query/session-query/src/index.ts)
1863
1928
 
1864
- Source: [`packages/session-query/session-query-sqlite/src/index.ts:89`](../packages/session-query/session-query-sqlite/src/index.ts)
1929
+ Source: [`packages/session-query/session-query-sqlite/src/index.ts:92`](../packages/session-query/session-query-sqlite/src/index.ts)
1865
1930
 
1866
1931
  <a id="deepseek-aidsh-session-reference"></a>
1867
1932
 
@@ -1947,7 +2012,7 @@ export interface Config {
1947
2012
  }
1948
2013
  ```
1949
2014
 
1950
- Source: [`packages/session/session-title/src/index.ts:55`](../packages/session/session-title/src/index.ts)
2015
+ Source: [`packages/session/session-title/src/index.ts:56`](../packages/session/session-title/src/index.ts)
1951
2016
 
1952
2017
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
1953
2018
 
@@ -2011,7 +2076,7 @@ export interface Config {
2011
2076
  }
2012
2077
  ```
2013
2078
 
2014
- Source: [`packages/shell/shell-env/src/index.ts:29`](../packages/shell/shell-env/src/index.ts)
2079
+ Source: [`packages/shell/shell-env/src/index.ts:28`](../packages/shell/shell-env/src/index.ts)
2015
2080
 
2016
2081
  <a id="deepseek-aidsh-skill"></a>
2017
2082
 
@@ -2516,7 +2581,7 @@ export interface Config {
2516
2581
  }
2517
2582
  ```
2518
2583
 
2519
- Source: [`packages/context/time-context/src/index.ts:48`](../packages/context/time-context/src/index.ts)
2584
+ Source: [`packages/context/time-context/src/index.ts:49`](../packages/context/time-context/src/index.ts)
2520
2585
 
2521
2586
  <a id="deepseek-aidsh-tmux-context"></a>
2522
2587
 
@@ -2545,7 +2610,7 @@ Requires: `sessionProjections`
2545
2610
  export type TokenMeterConfig = Record<string, never>
2546
2611
  ```
2547
2612
 
2548
- Source: [`packages/llm/token-meter/src/types.ts:12`](../packages/llm/token-meter/src/types.ts)
2613
+ Source: [`packages/llm/token-meter/src/types.ts:13`](../packages/llm/token-meter/src/types.ts)
2549
2614
 
2550
2615
  <a id="deepseek-aidsh-tool-bash"></a>
2551
2616
 
@@ -2892,29 +2957,7 @@ export interface Config {
2892
2957
 
2893
2958
  Depends on: [`AgentOptions`](subsystems/core.md)
2894
2959
 
2895
- Source: [`packages/subagent/tool-subagent/src/index.ts:48`](../packages/subagent/tool-subagent/src/index.ts)
2896
-
2897
- <a id="deepseek-aidsh-tool-subagent-report"></a>
2898
-
2899
- ## `@deepseek-ai/dsh-tool-subagent-report`
2900
-
2901
- Requires: `subagents` · `tools` · `systemPrompt`
2902
-
2903
- ```ts config-catalog
2904
- /** Config: how accepted reports are scheduled on the parent. */
2905
- export interface Config {
2906
- /**
2907
- * Parent scheduling (default `next-step`). `next-step` wakes the parent and
2908
- * enters at its nearest step boundary; `quiet` adds the same context without
2909
- * waking, so a parked parent waits for another waking input.
2910
- */
2911
- reportDelivery?: SubagentReportDelivery
2912
- }
2913
- ```
2914
-
2915
- Depends on: [`SubagentReportDelivery`](subsystems/subagent.md)
2916
-
2917
- Source: [`packages/subagent/tool-subagent-report/src/index.ts:25`](../packages/subagent/tool-subagent-report/src/index.ts)
2960
+ Source: [`packages/subagent/tool-subagent/src/index.ts:47`](../packages/subagent/tool-subagent/src/index.ts)
2918
2961
 
2919
2962
  <a id="deepseek-aidsh-tool-terminal"></a>
2920
2963
 
@@ -3083,7 +3126,7 @@ export interface Config {
3083
3126
  export type ApprovalPolicy = 'ask' | 'never'
3084
3127
  ```
3085
3128
 
3086
- Source: [`packages/interaction/user-approval/src/index.ts:142`](../packages/interaction/user-approval/src/index.ts)
3129
+ Source: [`packages/interaction/user-approval/src/index.ts:127`](../packages/interaction/user-approval/src/index.ts)
3087
3130
 
3088
3131
  <a id="deepseek-aidsh-web"></a>
3089
3132
 
@@ -3404,7 +3447,6 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3404
3447
  - `@deepseek-ai/dsh-client-ui-slots` ([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
3405
3448
  - `@deepseek-ai/dsh-client-web` ([`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts))
3406
3449
  - `@deepseek-ai/dsh-cmdline` ([`packages/boot/cmdline/src/index.ts`](../packages/boot/cmdline/src/index.ts))
3407
- - `@deepseek-ai/dsh-code-runtime-python` ([`packages/code-runtime/code-runtime-python/src/index.ts`](../packages/code-runtime/code-runtime-python/src/index.ts))
3408
3450
  - `@deepseek-ai/dsh-deque` ([`packages/util/deque/src/index.ts`](../packages/util/deque/src/index.ts))
3409
3451
  - `@deepseek-ai/dsh-experimental-agent-team-profile` ([`packages/experimental/agent-team-profile/src/index.ts`](../packages/experimental/agent-team-profile/src/index.ts))
3410
3452
  - `@deepseek-ai/dsh-experimental-agent-team-web-profile` ([`packages/experimental/agent-team-web-profile/src/index.ts`](../packages/experimental/agent-team-web-profile/src/index.ts))
@@ -113,7 +113,7 @@ export interface Config {
113
113
 
114
114
  依赖:[`AgentOptions`](subsystems/core.zh.md) · [`SessionId`](subsystems/core.zh.md)
115
115
 
116
- 来源:[`packages/core/agent-loop/src/index.ts:311`](../packages/core/agent-loop/src/index.ts)
116
+ 来源:[`packages/core/agent-loop/src/index.ts:318`](../packages/core/agent-loop/src/index.ts)
117
117
 
118
118
  <a id="deepseek-aidsh-agent-presets"></a>
119
119
 
@@ -210,14 +210,16 @@ export interface Config {
210
210
  ```ts config-catalog
211
211
  /** Session Controller deployment policy. */
212
212
  export interface Config {
213
- /** Maximum cold Session artifact size eligible for one full projection observation. */
213
+ /** Maximum stat-reported event count eligible for one full cold projection observation; `0` disables the event-count gate. */
214
+ readonly coldBlankProbeMaxEvents?: number
215
+ /** Maximum stat-reported artifact byte size eligible for one full cold projection observation; `0` disables the byte-size gate. */
214
216
  readonly coldBlankProbeMaxBytes?: number
215
217
  /** Override platform desktop-opener detection. */
216
218
  readonly nativeOpen?: boolean
217
219
  }
218
220
  ```
219
221
 
220
- 来源:[`packages/api/session-controller/src/index.ts:67`](../packages/api/session-controller/src/index.ts)
222
+ 来源:[`packages/api/session-controller/src/index.ts:72`](../packages/api/session-controller/src/index.ts)
221
223
 
222
224
  <a id="deepseek-aidsh-api-settings-controller"></a>
223
225
 
@@ -459,7 +461,7 @@ export interface ToolResultPruneConfig {
459
461
  }
460
462
  ```
461
463
 
462
- 来源:[`packages/compaction/compaction-tool-result-pruner/src/types.ts:4`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
464
+ 来源:[`packages/compaction/compaction-tool-result-pruner/src/types.ts:5`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
463
465
 
464
466
  <a id="deepseek-aidsh-cordis-host-runner"></a>
465
467
 
@@ -537,7 +539,74 @@ export interface Config {
537
539
  }
538
540
  ```
539
541
 
540
- 来源:[`packages/experimental/agent-team/src/types.ts:125`](../packages/experimental/agent-team/src/types.ts)
542
+ 来源:[`packages/experimental/agent-team/src/types.ts:124`](../packages/experimental/agent-team/src/types.ts)
543
+
544
+ <a id="deepseek-aidsh-experimental-code-runtime-python"></a>
545
+
546
+ ## `@deepseek-ai/dsh-experimental-code-runtime-python`
547
+
548
+ ```ts config-catalog
549
+ /** Plugin config: every cap, changeable from `cordis.yml` (no hardcoded tunables). */
550
+ export interface Config {
551
+ /**
552
+ * RLIMIT_CPU in whole seconds (a positive integer — `setrlimit` in the child
553
+ * rejects a float). The child sets the soft limit to `cpuSeconds` and the
554
+ * hard limit to `cpuSeconds + 1`: the kernel delivers SIGXCPU at the soft
555
+ * limit, which the host classifies as a `timeout`; the +1s hard limit is a
556
+ * SIGKILL backstop for a program that traps SIGXCPU. Granularity is seconds —
557
+ * a coarser counterpart to the worker backend's millisecond `computeMs`.
558
+ */
559
+ cpuSeconds?: number
560
+ /** Wall-clock ceiling in milliseconds; backstops CPU time for programs awaiting a promise nobody resolves. */
561
+ maxWallMs?: number
562
+ /**
563
+ * RLIMIT_AS in mebibytes; caps address space so a runaway allocation fails
564
+ * cleanly. Not applied on Darwin, where the dyld shared cache mapped into
565
+ * every process at exec exceeds any practical cap and the kernel rejects
566
+ * the call; `cpuSeconds` and `maxWallMs` still bound the run there. Bounds
567
+ * `maxLogBytes`/`maxValueBytes` at load on EVERY platform (this static check
568
+ * runs on Darwin too, where only the runtime `setrlimit` is skipped): each
569
+ * budget times a worst-case Unicode expansion must fit this byte count minus a
570
+ * fixed interpreter baseline, so a near-budget output cannot breach the address
571
+ * space during the child's build-and-encode.
572
+ */
573
+ addressSpaceMb?: number
574
+ /**
575
+ * Shared byte budget for captured log text (host-side ledger). Bounded at load
576
+ * against `addressSpaceMb`: the child builds and encodes a near-budget entry
577
+ * under RLIMIT_AS with several copies live at once, so this cap times the
578
+ * worst-case Unicode expansion must fit the address space left after the
579
+ * interpreter baseline (see `addressSpaceMb`) — a load-time rejection, not a
580
+ * runtime clamp. Also bounded at load by the host's configured heap like
581
+ * `maxValueBytes` (see its JSDoc): the effective frame cap minus the frame
582
+ * envelope.
583
+ */
584
+ maxLogBytes?: number
585
+ /**
586
+ * Byte cap for the completion value. Bounded at load against `addressSpaceMb`
587
+ * the same way `maxLogBytes` is: the child builds and encodes a near-budget
588
+ * value under RLIMIT_AS with several copies live at once, so this cap times the
589
+ * worst-case Unicode expansion must fit the address space left after the
590
+ * interpreter baseline. Both budgets are ALSO bounded at load by the host's
591
+ * configured heap: the effective frame cap (the protocol cap, or a lower
592
+ * heap-derived ceiling when the host heap cannot safely parse a near-cap
593
+ * frame — see `hostFrameParseCeiling`) minus the frame envelope, so a budget
594
+ * whose honest frame could OOM the host's own JSON.parse is rejected up
595
+ * front.
596
+ */
597
+ maxValueBytes?: number
598
+ /** SIGTERM→SIGKILL grace period on kill, matching bash-local's default. */
599
+ graceMs?: number
600
+ /**
601
+ * Absolute path, relative path, or basename of a CPython 3.10+ interpreter.
602
+ * Resolved and validated once at plugin load under a five-second force-kill
603
+ * deadline; a basename searches `PATH`.
604
+ */
605
+ pythonBin?: string
606
+ }
607
+ ```
608
+
609
+ 来源:[`packages/experimental/code-runtime-python/src/index.ts:42`](../packages/experimental/code-runtime-python/src/index.ts)
541
610
 
542
611
  <a id="deepseek-aidsh-experimental-inspector"></a>
543
612
 
@@ -698,7 +767,7 @@ export interface Config {
698
767
  }
699
768
  ```
700
769
 
701
- 来源:[`packages/goal/goal/src/index.ts:171`](../packages/goal/goal/src/index.ts)
770
+ 来源:[`packages/goal/goal/src/index.ts:172`](../packages/goal/goal/src/index.ts)
702
771
 
703
772
  <a id="deepseek-aidsh-headless"></a>
704
773
 
@@ -752,7 +821,7 @@ export interface Config {
752
821
  }
753
822
  ```
754
823
 
755
- 来源:[`packages/hooks/hooks-claude-code/src/index.ts:46`](../packages/hooks/hooks-claude-code/src/index.ts)
824
+ 来源:[`packages/hooks/hooks-claude-code/src/index.ts:45`](../packages/hooks/hooks-claude-code/src/index.ts)
756
825
 
757
826
  <a id="deepseek-aidsh-hooks-codex"></a>
758
827
 
@@ -779,7 +848,7 @@ export interface Config {
779
848
  }
780
849
  ```
781
850
 
782
- 来源:[`packages/hooks/hooks-codex/src/index.ts:45`](../packages/hooks/hooks-codex/src/index.ts)
851
+ 来源:[`packages/hooks/hooks-codex/src/index.ts:44`](../packages/hooks/hooks-codex/src/index.ts)
783
852
 
784
853
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
785
854
 
@@ -1026,7 +1095,7 @@ export interface PiAiProviderProfile {
1026
1095
  * to answer instead.
1027
1096
  */
1028
1097
  defaultInput?: PiAiModality[]
1029
- /** Provider request headers; Harness attribution wins reserved names. */
1098
+ /** Provider request headers, validated against Fetch when the profile resolves; Harness attribution wins reserved names. */
1030
1099
  headers?: Record<string, string>
1031
1100
  /** Provider-neutral pi-ai reasoning level. */
1032
1101
  reasoning?: ModelThinkingLevel
@@ -1290,7 +1359,7 @@ export interface ReplayModelConfig {
1290
1359
 
1291
1360
  依赖:[`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1292
1361
 
1293
- 来源:[`packages/test-support/llm-replay/src/index.ts:919`](../packages/test-support/llm-replay/src/index.ts)
1362
+ 来源:[`packages/test-support/llm-replay/src/index.ts:924`](../packages/test-support/llm-replay/src/index.ts)
1294
1363
 
1295
1364
  <a id="deepseek-aidsh-llm-retry"></a>
1296
1365
 
@@ -1434,7 +1503,7 @@ export interface Config {
1434
1503
  }
1435
1504
  ```
1436
1505
 
1437
- 来源:[`packages/feedback/message-feedback/src/index.ts:49`](../packages/feedback/message-feedback/src/index.ts)
1506
+ 来源:[`packages/feedback/message-feedback/src/index.ts:50`](../packages/feedback/message-feedback/src/index.ts)
1438
1507
 
1439
1508
  <a id="deepseek-aidsh-permission-presets"></a>
1440
1509
 
@@ -1735,7 +1804,7 @@ export interface Config {
1735
1804
  }
1736
1805
  ```
1737
1806
 
1738
- 来源:[`packages/session/session-log-deepseek/src/index.ts:23`](../packages/session/session-log-deepseek/src/index.ts)
1807
+ 来源:[`packages/session/session-log-deepseek/src/index.ts:36`](../packages/session/session-log-deepseek/src/index.ts)
1739
1808
 
1740
1809
  <a id="deepseek-aidsh-session-log-export"></a>
1741
1810
 
@@ -1754,14 +1823,12 @@ export interface Config {
1754
1823
  export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1755
1824
  ```
1756
1825
 
1757
- 来源:[`packages/session-query/session-log-export/src/index.ts:42`](../packages/session-query/session-log-export/src/index.ts)
1826
+ 来源:[`packages/session-query/session-log-export/src/index.ts:45`](../packages/session-query/session-log-export/src/index.ts)
1758
1827
 
1759
1828
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1760
1829
 
1761
1830
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
1762
1831
 
1763
- 需要:`sessions` · `sessionProjections`
1764
-
1765
1832
  ```ts config-catalog
1766
1833
  /** Plugin config: where the JSONL backend keeps its session logs, and the packed-row write switch. */
1767
1834
  export interface Config {
@@ -1783,17 +1850,13 @@ export interface Config {
1783
1850
  packChunks?: boolean
1784
1851
  /** Physical encoding; defaults to checksummed Zstandard frames. */
1785
1852
  compression?: JsonlCompression
1786
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1787
- preparedSessionCacheSize?: number
1788
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1789
- writeBatchMaxDelayMs?: number
1790
1853
  }
1791
1854
 
1792
1855
  /** Physical encoding selected for JSONL session artifacts. */
1793
1856
  export type JsonlCompression = 'zstd' | 'none'
1794
1857
  ```
1795
1858
 
1796
- 来源:[`packages/session/session-persistence-jsonl/src/index.ts:62`](../packages/session/session-persistence-jsonl/src/index.ts)
1859
+ 来源:[`packages/session/session-persistence-jsonl/src/index.ts:73`](../packages/session/session-persistence-jsonl/src/index.ts)
1797
1860
 
1798
1861
  <a id="deepseek-aidsh-session-projection-cache"></a>
1799
1862
 
@@ -1817,7 +1880,7 @@ export interface Config {
1817
1880
  }
1818
1881
  ```
1819
1882
 
1820
- 来源:[`packages/session/session-projection-cache/src/index.ts:48`](../packages/session/session-projection-cache/src/index.ts)
1883
+ 来源:[`packages/session/session-projection-cache/src/index.ts:55`](../packages/session/session-projection-cache/src/index.ts)
1821
1884
 
1822
1885
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1823
1886
 
@@ -1850,8 +1913,10 @@ export interface Config extends SessionQueryConfig {
1850
1913
  maxLimit?: number
1851
1914
  /** Maximum snippet length in Unicode code points. Defaults to 240. */
1852
1915
  snippetChars?: number
1853
- /** Maximum concurrent persisted-log inspections in one inherited batch read. Defaults to 4. */
1854
- persistedInspectConcurrency?: number
1916
+ /** Maximum concurrent persisted-log reads in one inherited batch read. Defaults to 4. */
1917
+ persistedReadConcurrency?: number
1918
+ /** Maximum cold prepared-Session observations the inherited reader retains for reuse. Defaults to 5. */
1919
+ preparedSessionCacheSize?: number
1855
1920
  }
1856
1921
 
1857
1922
  /** SQLite module/handle opening phase; `never` disables full-text search entirely. */
@@ -1863,7 +1928,7 @@ export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1863
1928
 
1864
1929
  依赖:[`SessionQueryConfig`](../packages/session-query/session-query/src/index.ts)
1865
1930
 
1866
- 来源:[`packages/session-query/session-query-sqlite/src/index.ts:89`](../packages/session-query/session-query-sqlite/src/index.ts)
1931
+ 来源:[`packages/session-query/session-query-sqlite/src/index.ts:92`](../packages/session-query/session-query-sqlite/src/index.ts)
1867
1932
 
1868
1933
  <a id="deepseek-aidsh-session-reference"></a>
1869
1934
 
@@ -1949,7 +2014,7 @@ export interface Config {
1949
2014
  }
1950
2015
  ```
1951
2016
 
1952
- 来源:[`packages/session/session-title/src/index.ts:55`](../packages/session/session-title/src/index.ts)
2017
+ 来源:[`packages/session/session-title/src/index.ts:56`](../packages/session/session-title/src/index.ts)
1953
2018
 
1954
2019
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
1955
2020
 
@@ -2013,7 +2078,7 @@ export interface Config {
2013
2078
  }
2014
2079
  ```
2015
2080
 
2016
- 来源:[`packages/shell/shell-env/src/index.ts:29`](../packages/shell/shell-env/src/index.ts)
2081
+ 来源:[`packages/shell/shell-env/src/index.ts:28`](../packages/shell/shell-env/src/index.ts)
2017
2082
 
2018
2083
  <a id="deepseek-aidsh-skill"></a>
2019
2084
 
@@ -2547,7 +2612,7 @@ export interface Config {
2547
2612
  export type TokenMeterConfig = Record<string, never>
2548
2613
  ```
2549
2614
 
2550
- 来源:[`packages/llm/token-meter/src/types.ts:12`](../packages/llm/token-meter/src/types.ts)
2615
+ 来源:[`packages/llm/token-meter/src/types.ts:13`](../packages/llm/token-meter/src/types.ts)
2551
2616
 
2552
2617
  <a id="deepseek-aidsh-tool-bash"></a>
2553
2618
 
@@ -2896,28 +2961,6 @@ export interface Config {
2896
2961
 
2897
2962
  来源:[`packages/subagent/tool-subagent/src/index.ts:48`](../packages/subagent/tool-subagent/src/index.ts)
2898
2963
 
2899
- <a id="deepseek-aidsh-tool-subagent-report"></a>
2900
-
2901
- ## `@deepseek-ai/dsh-tool-subagent-report`
2902
-
2903
- 需要:`subagents` · `tools` · `systemPrompt`
2904
-
2905
- ```ts config-catalog
2906
- /** Config: how accepted reports are scheduled on the parent. */
2907
- export interface Config {
2908
- /**
2909
- * Parent scheduling (default `next-step`). `next-step` wakes the parent and
2910
- * enters at its nearest step boundary; `quiet` adds the same context without
2911
- * waking, so a parked parent waits for another waking input.
2912
- */
2913
- reportDelivery?: SubagentReportDelivery
2914
- }
2915
- ```
2916
-
2917
- 依赖:[`SubagentReportDelivery`](subsystems/subagent.zh.md)
2918
-
2919
- 来源:[`packages/subagent/tool-subagent-report/src/index.ts:25`](../packages/subagent/tool-subagent-report/src/index.ts)
2920
-
2921
2964
  <a id="deepseek-aidsh-tool-terminal"></a>
2922
2965
 
2923
2966
  ## `@deepseek-ai/dsh-tool-terminal`
@@ -3085,7 +3128,7 @@ export interface Config {
3085
3128
  export type ApprovalPolicy = 'ask' | 'never'
3086
3129
  ```
3087
3130
 
3088
- 来源:[`packages/interaction/user-approval/src/index.ts:142`](../packages/interaction/user-approval/src/index.ts)
3131
+ 来源:[`packages/interaction/user-approval/src/index.ts:126`](../packages/interaction/user-approval/src/index.ts)
3089
3132
 
3090
3133
  <a id="deepseek-aidsh-web"></a>
3091
3134
 
@@ -3405,7 +3448,6 @@ export interface Config {
3405
3448
  - `@deepseek-ai/dsh-client-ui-slots`([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
3406
3449
  - `@deepseek-ai/dsh-client-web`([`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts))
3407
3450
  - `@deepseek-ai/dsh-cmdline`([`packages/boot/cmdline/src/index.ts`](../packages/boot/cmdline/src/index.ts))
3408
- - `@deepseek-ai/dsh-code-runtime-python`([`packages/code-runtime/code-runtime-python/src/index.ts`](../packages/code-runtime/code-runtime-python/src/index.ts))
3409
3451
  - `@deepseek-ai/dsh-deque`([`packages/util/deque/src/index.ts`](../packages/util/deque/src/index.ts))
3410
3452
  - `@deepseek-ai/dsh-experimental-agent-team-profile`([`packages/experimental/agent-team-profile/src/index.ts`](../packages/experimental/agent-team-profile/src/index.ts))
3411
3453
  - `@deepseek-ai/dsh-experimental-agent-team-web-profile`([`packages/experimental/agent-team-web-profile/src/index.ts`](../packages/experimental/agent-team-web-profile/src/index.ts))
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/cookbook/adding-a-package.md
5
- adding-a-package.md: f38c0d3f3bdfe126ca1de4801548c546fc5994cc
6
- adding-a-package.zh.md: 11f6faa75e757b769ef84a039cef05afd1324a95
5
+ adding-a-package.md: 771bc2b63dba0234252a6925c0aaa4b4f3a16142
6
+ adding-a-package.zh.md: 8be5e47a206983bef3f86d4210f59159f87a9fae
@@ -22,7 +22,7 @@ packages/<group>/<pkg>/
22
22
 
23
23
  Choose an existing group when one matches the package's role (`core`, `llm`, `shell`, `compaction`, `subagent`, `todo`, `session`, `client`/`host`, `util`, or `test-support`). A new group is allowed, but it is a pure container: no `package.json`, no source files, and packages still sit exactly one level below it.
24
24
 
25
- package.json invariants (enforced by `pnpm run constraints` / `scripts/check-workspace-constraints.ts`): `private: true`, a `version` matching the root `package.json`, `type: module`, `main: "lib/index.js"`, `types: "lib/types/index.d.ts"`, `exports["."].types: "./lib/types/index.d.ts"`, `exports["."].default: "./lib/index.js"`, `@deepseek-ai/cordis` in BOTH peerDependencies and devDependencies (same range). Mirror every dsh peer dependency in devDependencies. `@deepseek-ai/schemastery` goes in `dependencies` (it is a runtime validator), matching agent-loop. The `files` list contains exactly `lib/index.js`, `lib/invariant.js`, `lib/types/**/*.d.ts`, and package-specific runtime artifacts recognized by the gate; a package whose runtime export points into the emitted tree also includes `lib/types/**/*.js`. Do not publish `src`, declaration maps, JS maps, or stale root declaration files. CLI app packages with a package `bin` include `lib/bin.js` immediately after `lib/index.js` in `files`.
25
+ package.json invariants (enforced by `pnpm run constraints` / `scripts/check-workspace-constraints.ts`): `private: true`, a `version` matching the root `package.json`, `type: module`, `main: "lib/index.js"`, `types: "lib/types/index.d.ts"`, `exports["."].types: "./lib/types/index.d.ts"`, `exports["."].default: "./lib/index.js"`, `@deepseek-ai/cordis` in BOTH peerDependencies and devDependencies (same range). Mirror every dsh peer dependency in devDependencies. `@deepseek-ai/schemastery` goes in `dependencies` (it is a runtime validator), matching agent-loop. The `files` list contains exactly `lib/index.js`, `lib/types/**/*.d.ts`, and package-specific runtime artifacts recognized by the gate; a package that publishes `./invariant` also includes `lib/invariant.js`. A package whose runtime export points into the emitted tree also includes `lib/types/**/*.js`. Do not publish `src`, declaration maps, JS maps, or stale root declaration files. CLI app packages with a package `bin` include `lib/bin.js` immediately after `lib/index.js` in `files`.
26
26
 
27
27
  In-package relative imports use explicit `.ts` specifiers in source (for example, `export * from './types.ts'`). The compiler rewrites those to `.js` in emitted JS and leaves explicit `.ts` specifiers in declarations, which standard NodeNext/Node16 TypeScript consumers resolve to the sibling `.d.ts` files.
28
28