@zihanw/pi-forge 0.3.0 → 0.3.2

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 (156) hide show
  1. package/README.md +87 -2
  2. package/README.zh-CN.md +72 -2
  3. package/dist/compiler.d.ts +10 -0
  4. package/dist/compiler.d.ts.map +1 -0
  5. package/dist/compiler.js +490 -0
  6. package/dist/compiler.js.map +1 -0
  7. package/dist/extension-registry.d.ts +25 -0
  8. package/dist/extension-registry.d.ts.map +1 -0
  9. package/dist/extension-registry.js +6 -0
  10. package/dist/extension-registry.js.map +1 -0
  11. package/dist/forge-extensions.d.ts +28 -0
  12. package/dist/forge-extensions.d.ts.map +1 -0
  13. package/dist/forge-extensions.js +182 -0
  14. package/dist/forge-extensions.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +376 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lifecycle.d.ts +14 -0
  20. package/dist/lifecycle.d.ts.map +1 -0
  21. package/dist/lifecycle.js +139 -0
  22. package/dist/lifecycle.js.map +1 -0
  23. package/dist/loader.d.ts +8 -0
  24. package/dist/loader.d.ts.map +1 -0
  25. package/dist/loader.js +345 -0
  26. package/dist/loader.js.map +1 -0
  27. package/dist/macro-engine.d.ts +23 -0
  28. package/dist/macro-engine.d.ts.map +1 -0
  29. package/dist/macro-engine.js +262 -0
  30. package/dist/macro-engine.js.map +1 -0
  31. package/dist/payload-capture.d.ts +15 -0
  32. package/dist/payload-capture.d.ts.map +1 -0
  33. package/dist/payload-capture.js +86 -0
  34. package/dist/payload-capture.js.map +1 -0
  35. package/dist/payload-command.d.ts +10 -0
  36. package/dist/payload-command.d.ts.map +1 -0
  37. package/dist/payload-command.js +112 -0
  38. package/dist/payload-command.js.map +1 -0
  39. package/dist/policy.d.ts +6 -0
  40. package/dist/policy.d.ts.map +1 -0
  41. package/dist/policy.js +38 -0
  42. package/dist/policy.js.map +1 -0
  43. package/dist/preset-command.d.ts +14 -0
  44. package/dist/preset-command.d.ts.map +1 -0
  45. package/dist/preset-command.js +232 -0
  46. package/dist/preset-command.js.map +1 -0
  47. package/dist/preview.d.ts +12 -0
  48. package/dist/preview.d.ts.map +1 -0
  49. package/dist/preview.js +179 -0
  50. package/dist/preview.js.map +1 -0
  51. package/dist/regex.d.ts +7 -0
  52. package/dist/regex.d.ts.map +1 -0
  53. package/dist/regex.js +432 -0
  54. package/dist/regex.js.map +1 -0
  55. package/dist/render-helpers.d.ts +44 -0
  56. package/dist/render-helpers.d.ts.map +1 -0
  57. package/dist/render-helpers.js +128 -0
  58. package/dist/render-helpers.js.map +1 -0
  59. package/dist/runtime-state.d.ts +26 -0
  60. package/dist/runtime-state.d.ts.map +1 -0
  61. package/dist/runtime-state.js +15 -0
  62. package/dist/runtime-state.js.map +1 -0
  63. package/dist/sillytavern-importer/items.d.ts +3 -0
  64. package/dist/sillytavern-importer/items.d.ts.map +1 -0
  65. package/dist/sillytavern-importer/items.js +88 -0
  66. package/dist/sillytavern-importer/items.js.map +1 -0
  67. package/dist/sillytavern-importer/macros.d.ts +15 -0
  68. package/dist/sillytavern-importer/macros.d.ts.map +1 -0
  69. package/dist/sillytavern-importer/macros.js +141 -0
  70. package/dist/sillytavern-importer/macros.js.map +1 -0
  71. package/dist/sillytavern-importer/prompt-order.d.ts +6 -0
  72. package/dist/sillytavern-importer/prompt-order.d.ts.map +1 -0
  73. package/dist/sillytavern-importer/prompt-order.js +38 -0
  74. package/dist/sillytavern-importer/prompt-order.js.map +1 -0
  75. package/dist/sillytavern-importer/regex.d.ts +3 -0
  76. package/dist/sillytavern-importer/regex.d.ts.map +1 -0
  77. package/dist/sillytavern-importer/regex.js +275 -0
  78. package/dist/sillytavern-importer/regex.js.map +1 -0
  79. package/dist/sillytavern-importer/report.d.ts +21 -0
  80. package/dist/sillytavern-importer/report.d.ts.map +1 -0
  81. package/dist/sillytavern-importer/report.js +166 -0
  82. package/dist/sillytavern-importer/report.js.map +1 -0
  83. package/dist/sillytavern-importer/types.d.ts +106 -0
  84. package/dist/sillytavern-importer/types.d.ts.map +1 -0
  85. package/dist/sillytavern-importer/types.js +2 -0
  86. package/dist/sillytavern-importer/types.js.map +1 -0
  87. package/dist/sillytavern-importer.d.ts +5 -0
  88. package/dist/sillytavern-importer.d.ts.map +1 -0
  89. package/dist/sillytavern-importer.js +117 -0
  90. package/dist/sillytavern-importer.js.map +1 -0
  91. package/dist/slot-renderers.d.ts +25 -0
  92. package/dist/slot-renderers.d.ts.map +1 -0
  93. package/dist/slot-renderers.js +334 -0
  94. package/dist/slot-renderers.js.map +1 -0
  95. package/dist/stack-migration.d.ts +29 -0
  96. package/dist/stack-migration.d.ts.map +1 -0
  97. package/dist/stack-migration.js +126 -0
  98. package/dist/stack-migration.js.map +1 -0
  99. package/dist/storage.d.ts +10 -0
  100. package/dist/storage.d.ts.map +1 -0
  101. package/dist/storage.js +36 -0
  102. package/dist/storage.js.map +1 -0
  103. package/dist/types.d.ts +173 -0
  104. package/dist/types.d.ts.map +1 -0
  105. package/dist/types.js +2 -0
  106. package/dist/types.js.map +1 -0
  107. package/dist/web-editor/index.d.ts +3 -0
  108. package/dist/web-editor/index.d.ts.map +1 -0
  109. package/dist/web-editor/index.js +2 -0
  110. package/dist/web-editor/index.js.map +1 -0
  111. package/dist/web-editor/page.d.ts +2 -0
  112. package/dist/web-editor/page.d.ts.map +1 -0
  113. package/dist/web-editor/page.js +3331 -0
  114. package/dist/web-editor/page.js.map +1 -0
  115. package/dist/web-editor/server.d.ts +4 -0
  116. package/dist/web-editor/server.d.ts.map +1 -0
  117. package/dist/web-editor/server.js +263 -0
  118. package/dist/web-editor/server.js.map +1 -0
  119. package/dist/web-editor/types.d.ts +125 -0
  120. package/dist/web-editor/types.d.ts.map +1 -0
  121. package/dist/web-editor/types.js +2 -0
  122. package/dist/web-editor/types.js.map +1 -0
  123. package/dist/web-host.d.ts +29 -0
  124. package/dist/web-host.d.ts.map +1 -0
  125. package/dist/web-host.js +174 -0
  126. package/dist/web-host.js.map +1 -0
  127. package/examples/custom-system-status-extension/README.md +85 -0
  128. package/examples/custom-system-status-extension/index.ts +136 -0
  129. package/examples/custom-system-status-extension/prompt-stack.json +39 -0
  130. package/examples/image-reader-prompt-stack.json +124 -0
  131. package/package.json +28 -2
  132. package/src/compiler.ts +2 -472
  133. package/src/extension-registry.ts +33 -0
  134. package/src/forge-extensions.ts +223 -0
  135. package/src/index.ts +208 -653
  136. package/src/lifecycle.ts +171 -0
  137. package/src/macro-engine.ts +358 -0
  138. package/src/payload-command.ts +138 -0
  139. package/src/preset-command.ts +280 -0
  140. package/src/preview.ts +226 -0
  141. package/src/render-helpers.ts +169 -0
  142. package/src/runtime-state.ts +40 -0
  143. package/src/sillytavern-importer/items.ts +98 -0
  144. package/src/sillytavern-importer/macros.ts +159 -0
  145. package/src/sillytavern-importer/prompt-order.ts +54 -0
  146. package/src/sillytavern-importer/regex.ts +270 -0
  147. package/src/sillytavern-importer/report.ts +202 -0
  148. package/src/sillytavern-importer/types.ts +120 -0
  149. package/src/sillytavern-importer.ts +55 -865
  150. package/src/slot-renderers.ts +414 -0
  151. package/src/storage.ts +17 -0
  152. package/src/types.ts +3 -14
  153. package/src/web-editor/page.ts +516 -30
  154. package/src/web-editor/server.ts +9 -4
  155. package/src/web-editor/types.ts +18 -4
  156. package/src/web-host.ts +16 -13
@@ -0,0 +1,126 @@
1
+ import { copyFileSync, existsSync, mkdirSync, readdirSync, unlinkSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { legacyPromptStacksDir, promptStacksDir } from "./storage.js";
4
+ export function migrateLegacyPromptStacks(cwd, options = {}) {
5
+ const sourceDir = legacyPromptStacksDir(cwd);
6
+ const targetDir = promptStacksDir(cwd);
7
+ const report = {
8
+ sourceDir,
9
+ targetDir,
10
+ dryRun: options.dryRun === true,
11
+ overwrite: options.overwrite === true,
12
+ deleteLegacy: options.deleteLegacy === true,
13
+ files: [],
14
+ copied: 0,
15
+ overwritten: 0,
16
+ skipped: 0,
17
+ errors: 0,
18
+ deletedLegacy: 0,
19
+ };
20
+ if (!existsSync(sourceDir))
21
+ return report;
22
+ let entries;
23
+ try {
24
+ entries = readdirSync(sourceDir).filter((name) => name.endsWith(".json")).sort();
25
+ }
26
+ catch (error) {
27
+ report.files.push({
28
+ name: "(legacy directory)",
29
+ sourcePath: sourceDir,
30
+ targetPath: targetDir,
31
+ action: "error",
32
+ reason: error instanceof Error ? error.message : String(error),
33
+ deleteLegacy: false,
34
+ });
35
+ report.errors++;
36
+ return report;
37
+ }
38
+ for (const name of entries) {
39
+ const sourcePath = join(sourceDir, name);
40
+ const targetPath = join(targetDir, name);
41
+ const targetExists = existsSync(targetPath);
42
+ if (targetExists && !report.overwrite) {
43
+ report.files.push({
44
+ name,
45
+ sourcePath,
46
+ targetPath,
47
+ action: "skip",
48
+ reason: "target already exists",
49
+ deleteLegacy: false,
50
+ });
51
+ report.skipped++;
52
+ continue;
53
+ }
54
+ const action = targetExists ? "overwrite" : "copy";
55
+ try {
56
+ if (!report.dryRun) {
57
+ mkdirSync(dirname(targetPath), { recursive: true });
58
+ copyFileSync(sourcePath, targetPath);
59
+ if (report.deleteLegacy) {
60
+ unlinkSync(sourcePath);
61
+ report.deletedLegacy++;
62
+ }
63
+ }
64
+ if (action === "overwrite")
65
+ report.overwritten++;
66
+ else
67
+ report.copied++;
68
+ report.files.push({
69
+ name,
70
+ sourcePath,
71
+ targetPath,
72
+ action,
73
+ deleteLegacy: report.deleteLegacy,
74
+ });
75
+ }
76
+ catch (error) {
77
+ report.files.push({
78
+ name,
79
+ sourcePath,
80
+ targetPath,
81
+ action: "error",
82
+ reason: error instanceof Error ? error.message : String(error),
83
+ deleteLegacy: false,
84
+ });
85
+ report.errors++;
86
+ }
87
+ }
88
+ return report;
89
+ }
90
+ export function renderMigrationReport(report) {
91
+ const lines = [
92
+ "# Prompt Stack Migration",
93
+ "",
94
+ `Source: ${report.sourceDir}`,
95
+ `Target: ${report.targetDir}`,
96
+ `Mode: ${report.dryRun ? "dry run" : "write"}`,
97
+ `Overwrite existing target files: ${report.overwrite ? "yes" : "no"}`,
98
+ `Delete legacy files after copy: ${report.deleteLegacy ? "yes" : "no"}`,
99
+ "",
100
+ `Copied: ${report.copied}`,
101
+ `Overwritten: ${report.overwritten}`,
102
+ `Skipped: ${report.skipped}`,
103
+ `Errors: ${report.errors}`,
104
+ `Deleted legacy files: ${report.deletedLegacy}`,
105
+ "",
106
+ "## Files",
107
+ "",
108
+ ];
109
+ if (report.files.length === 0) {
110
+ lines.push("No legacy prompt-stack JSON files found.");
111
+ return lines.join("\n");
112
+ }
113
+ for (const file of report.files) {
114
+ const suffix = file.reason ? ` (${file.reason})` : "";
115
+ lines.push(`- ${file.action}: ${file.name}${suffix}`);
116
+ lines.push(` from: ${file.sourcePath}`);
117
+ lines.push(` to: ${file.targetPath}`);
118
+ if (file.deleteLegacy)
119
+ lines.push(" legacy delete: yes");
120
+ }
121
+ if (!report.deleteLegacy && !report.dryRun && (report.copied || report.overwritten)) {
122
+ lines.push("", "Legacy files were left in place. Re-run with `--delete-legacy` after checking the migrated stacks if you want to remove them.");
123
+ }
124
+ return lines.join("\n");
125
+ }
126
+ //# sourceMappingURL=stack-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-migration.js","sourceRoot":"","sources":["../src/stack-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare function promptStacksDir(cwd: string): string;
2
+ export declare function forgeDir(cwd: string): string;
3
+ export declare function forgeExtensionsDir(cwd: string): string;
4
+ export declare function globalForgeDir(): string;
5
+ export declare function globalForgeExtensionsDir(): string;
6
+ export declare function legacyPromptStacksDir(cwd: string): string;
7
+ export declare function promptStackReadDirs(cwd: string): string[];
8
+ export declare function promptStackPath(cwd: string, id: string): string;
9
+ export declare function isInsidePromptStackStorage(cwd: string, filePath: string): boolean;
10
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjF"}
@@ -0,0 +1,36 @@
1
+ import { homedir } from "node:os";
2
+ import { isAbsolute, join, relative, resolve } from "node:path";
3
+ export function promptStacksDir(cwd) {
4
+ return join(cwd, ".pi", "forge", "prompt-stacks");
5
+ }
6
+ export function forgeDir(cwd) {
7
+ return join(cwd, ".pi", "forge");
8
+ }
9
+ export function forgeExtensionsDir(cwd) {
10
+ return join(forgeDir(cwd), "extensions");
11
+ }
12
+ export function globalForgeDir() {
13
+ return join(homedir(), ".pi", "forge");
14
+ }
15
+ export function globalForgeExtensionsDir() {
16
+ return join(globalForgeDir(), "extensions");
17
+ }
18
+ export function legacyPromptStacksDir(cwd) {
19
+ return join(cwd, ".pi", "prompt-stacks");
20
+ }
21
+ export function promptStackReadDirs(cwd) {
22
+ return [promptStacksDir(cwd), legacyPromptStacksDir(cwd)];
23
+ }
24
+ export function promptStackPath(cwd, id) {
25
+ return join(promptStacksDir(cwd), `${id}.json`);
26
+ }
27
+ export function isInsidePromptStackStorage(cwd, filePath) {
28
+ return promptStackReadDirs(cwd).some((dir) => isInsideDir(dir, filePath));
29
+ }
30
+ function isInsideDir(rootDir, filePath) {
31
+ const root = resolve(rootDir);
32
+ const target = resolve(filePath);
33
+ const rel = relative(root, target);
34
+ return !!rel && !rel.startsWith("..") && !isAbsolute(rel);
35
+ }
36
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhE,MAAM,UAAU,eAAe,CAAC,GAAW;IAC1C,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACvC,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC9C,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,EAAU;IACtD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,GAAW,EAAE,QAAgB;IACvE,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,QAAgB;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,173 @@
1
+ import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
+ import type { BuildSystemPromptOptions, ExtensionContext } from "@earendil-works/pi-coding-agent";
3
+ export type PromptStackMode = "replace" | "append" | "prepend";
4
+ export type PromptStackRole = "system" | "user" | "assistant" | "custom";
5
+ export type PromptStackSlot = "chat-history" | "tools" | "tool-guidelines" | "skills" | "project-context" | "append-system-prompt" | "date" | "cwd" | "date-cwd" | "active-model" | "pi-docs" | "variables";
6
+ export type PromptStackSlotFormat = "xml" | "json" | "plain";
7
+ export type PromptRegexStage = "history" | "compiled";
8
+ export type PromptRegexEffect = "outgoing" | "display" | "both" | "finalize";
9
+ export type PromptRegexTarget = "system" | "messages";
10
+ export interface PromptRegexRule {
11
+ id: string;
12
+ name?: string;
13
+ enabled?: boolean;
14
+ stage: PromptRegexStage;
15
+ effect?: PromptRegexEffect;
16
+ pattern: string;
17
+ flags?: string;
18
+ replace?: string;
19
+ trimStrings?: string[];
20
+ roles?: string[];
21
+ targets?: PromptRegexTarget[];
22
+ maxMessages?: number;
23
+ maxChars?: number;
24
+ minDepth?: number;
25
+ maxDepth?: number;
26
+ source?: Record<string, unknown>;
27
+ }
28
+ export interface PromptRegexConfig {
29
+ schemaVersion?: 1;
30
+ rules?: PromptRegexRule[];
31
+ }
32
+ export type PromptResourcePolicy = {
33
+ allow?: string[];
34
+ deny?: never;
35
+ } | {
36
+ allow?: never;
37
+ deny?: string[];
38
+ };
39
+ export interface PromptStackDefaults {
40
+ syntheticMessagesVisible?: boolean;
41
+ unresolvedMacroPolicy?: "warn" | "keep" | "error";
42
+ }
43
+ export interface PromptStackContextOptions {
44
+ allowDuplicateChatHistory?: boolean;
45
+ }
46
+ export interface PromptStackBaseItem {
47
+ kind: "block" | "slot";
48
+ id: string;
49
+ name?: string;
50
+ enabled?: boolean;
51
+ role?: PromptStackRole;
52
+ tags?: string[];
53
+ source?: Record<string, unknown>;
54
+ }
55
+ export interface PromptStackBlockItem extends PromptStackBaseItem {
56
+ kind: "block";
57
+ content: string;
58
+ }
59
+ export interface VariablesSlotOptions {
60
+ /** Include static stack variables. Default: true. */
61
+ includeStatic?: boolean;
62
+ /** Include session variables. Default: true. */
63
+ includeSession?: boolean;
64
+ /** Include turn variables. Default: true. */
65
+ includeTurn?: boolean;
66
+ /** Render format. Default: xml. */
67
+ format?: Exclude<PromptStackSlotFormat, "json">;
68
+ }
69
+ export interface PromptStackSlotOptions {
70
+ /** For chat-history: include the latest user message in the expanded history. Default: true. */
71
+ includeLastUserMessage?: boolean;
72
+ /** For chat-history: remove assistant thinking content blocks from inserted history. Default: false. */
73
+ stripAssistantThinking?: boolean;
74
+ /** For chat-history: keep only messages with these roles. Default: all roles. */
75
+ roles?: string[];
76
+ /** For chat-history: include Pi branch/compaction summaries. Default: true. */
77
+ includeSummaries?: boolean;
78
+ /** For chat-history: keep or drop tool-call/tool-result history. Default: keep. */
79
+ toolMode?: "keep" | "drop";
80
+ /** For chat-history: keep only the most recent N messages after filtering. */
81
+ maxMessages?: number;
82
+ /** For chat-history: keep only the most recent messages within an approximate character budget. */
83
+ maxChars?: number;
84
+ /** For variables: control which variable scopes are included. */
85
+ includeStatic?: boolean;
86
+ includeSession?: boolean;
87
+ includeTurn?: boolean;
88
+ format?: PromptStackSlotFormat;
89
+ /** For tools: only render tools that provide prompt snippets, matching Pi's default prompt builder. */
90
+ onlyWithSnippets?: boolean;
91
+ /** For date/date-cwd: include the exact current time. Default: false. */
92
+ includeTime?: boolean;
93
+ /** For tool-guidelines: override the plain-format section heading. */
94
+ heading?: string;
95
+ /** For tool-guidelines: include Pi's default concise/file-path guideline bullets. */
96
+ includePiDefaultGuidelines?: boolean;
97
+ /** For tool-guidelines: match Pi's default wording where it differs from pi-forge's generic wording. */
98
+ piStyle?: boolean;
99
+ /** For skills: omit the skills section unless the read tool is active, matching Pi's default prompt builder. */
100
+ requireReadTool?: boolean;
101
+ [key: string]: unknown;
102
+ }
103
+ export interface PromptStackSlotItem extends PromptStackBaseItem {
104
+ kind: "slot";
105
+ slot: PromptStackSlot | string;
106
+ options?: PromptStackSlotOptions;
107
+ }
108
+ export type PromptStackItem = PromptStackBlockItem | PromptStackSlotItem;
109
+ export type PromptVariablePrimitive = string | number | boolean | null;
110
+ export type PromptVariableValue = PromptVariablePrimitive | PromptVariableValue[] | {
111
+ [key: string]: PromptVariableValue;
112
+ };
113
+ export interface PromptStack {
114
+ schemaVersion: 1;
115
+ type?: "pi-forge.prompt-stack";
116
+ id: string;
117
+ name?: string;
118
+ description?: string;
119
+ autoActivate?: boolean;
120
+ mode?: PromptStackMode;
121
+ defaults?: PromptStackDefaults;
122
+ context?: PromptStackContextOptions;
123
+ tools?: PromptResourcePolicy;
124
+ skills?: PromptResourcePolicy;
125
+ variables?: Record<string, string>;
126
+ regex?: PromptRegexConfig;
127
+ items: PromptStackItem[];
128
+ import?: Record<string, unknown>;
129
+ }
130
+ export interface LoadedPromptStack {
131
+ stack: PromptStack;
132
+ filePath: string;
133
+ diagnostics: PromptStackDiagnostic[];
134
+ }
135
+ export type PromptStackDiagnosticLevel = "error" | "warning" | "info";
136
+ export interface PromptStackDiagnostic {
137
+ level: PromptStackDiagnosticLevel;
138
+ message: string;
139
+ itemId?: string;
140
+ }
141
+ export interface PromptVariableStore {
142
+ turn: Record<string, PromptVariableValue>;
143
+ session: Record<string, PromptVariableValue>;
144
+ sessionDirty?: boolean;
145
+ }
146
+ export interface PromptRuntime {
147
+ options: BuildSystemPromptOptions;
148
+ ctx?: ExtensionContext;
149
+ latestUserMessage?: string;
150
+ now: Date;
151
+ variables?: PromptVariableStore;
152
+ }
153
+ export interface CompileSystemPromptResult {
154
+ systemPrompt: string;
155
+ diagnostics: PromptStackDiagnostic[];
156
+ }
157
+ export type CompileMessageSourceKind = "stack-item" | "chat-history" | "implicit-history";
158
+ export interface CompileMessageSource {
159
+ kind: CompileMessageSourceKind;
160
+ itemId?: string;
161
+ itemName?: string;
162
+ slot?: string;
163
+ historyIndex?: number;
164
+ historyCount?: number;
165
+ role?: string;
166
+ }
167
+ export interface CompileMessagesResult {
168
+ messages: AgentMessage[];
169
+ messageSources: CompileMessageSource[];
170
+ diagnostics: PromptStackDiagnostic[];
171
+ }
172
+ export { SUPPORTED_SLOTS } from "./slot-renderers.ts";
173
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export { SUPPORTED_SLOTS } from "./slot-renderers.js";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgNA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DEFAULT_WEB_EDITOR_PORT, startWebEditorServer } from "./server.ts";
2
+ export type * from "./types.ts";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC5E,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { DEFAULT_WEB_EDITOR_PORT, startWebEditorServer } from "./server.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/web-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function renderEditorHtml(): string;
2
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/web-editor/page.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,IAAI,MAAM,CAiwGzC"}