@oh-my-pi/pi-coding-agent 12.14.1 → 12.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+
6
+ ### Changed
7
+
8
+ - Updated browser tool prompt to bias towards `observe` over `screenshot` by default
9
+
10
+ ## [12.15.0] - 2026-02-20
11
+
12
+ ### Added
13
+
14
+ - Added `includeDisabled` parameter to `listAuthCredentials()` to optionally retrieve disabled credentials
15
+ - Added `disableAuthCredential()` method for soft-deleting auth credentials while preserving database records
16
+
17
+ ### Changed
18
+
19
+ - Changed auth credential removal to use soft-delete (disable) instead of hard-delete when OAuth refresh fails, keeping credentials in database for audit purposes
20
+ - Changed default value of `tools.intentTracing` setting from false to true
21
+
5
22
  ## [12.14.1] - 2026-02-19
6
23
 
7
24
  ### Fixed
@@ -4854,4 +4871,4 @@ Initial public release.
4854
4871
  - Git branch display in footer
4855
4872
  - Message queueing during streaming responses
4856
4873
  - OAuth integration for Gmail and Google Calendar access
4857
- - HTML export with syntax highlighting and collapsible sections
4874
+ - HTML export with syntax highlighting and collapsible sections
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-coding-agent",
3
- "version": "12.14.1",
3
+ "version": "12.15.0",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "bin": {
@@ -70,7 +70,6 @@
70
70
  "files": [
71
71
  "src",
72
72
  "scripts",
73
- "docs",
74
73
  "examples",
75
74
  "README.md",
76
75
  "CHANGELOG.md"
@@ -79,18 +78,19 @@
79
78
  "check": "tsgo -p tsconfig.json",
80
79
  "format-prompts": "bun scripts/format-prompts.ts",
81
80
  "generate-docs-index": "bun scripts/generate-docs-index.ts",
81
+ "prepack": "bun scripts/generate-docs-index.ts",
82
82
  "build:binary": "cd ../.. && bun --cwd=packages/stats scripts/generate-client-bundle.ts && bun --cwd=packages/natives run embed:native && bun build --compile --define PI_COMPILED=true --root . ./packages/coding-agent/src/cli.ts --outfile packages/coding-agent/dist/omp && bun --cwd=packages/natives run embed:native --reset && bun --cwd=packages/stats scripts/generate-client-bundle.ts --reset",
83
83
  "generate-template": "bun scripts/generate-template.ts",
84
84
  "test": "bun test"
85
85
  },
86
86
  "dependencies": {
87
87
  "@mozilla/readability": "0.6.0",
88
- "@oh-my-pi/omp-stats": "12.14.1",
89
- "@oh-my-pi/pi-agent-core": "12.14.1",
90
- "@oh-my-pi/pi-ai": "12.14.1",
91
- "@oh-my-pi/pi-natives": "12.14.1",
92
- "@oh-my-pi/pi-tui": "12.14.1",
93
- "@oh-my-pi/pi-utils": "12.14.1",
88
+ "@oh-my-pi/omp-stats": "12.15.0",
89
+ "@oh-my-pi/pi-agent-core": "12.15.0",
90
+ "@oh-my-pi/pi-ai": "12.15.0",
91
+ "@oh-my-pi/pi-natives": "12.15.0",
92
+ "@oh-my-pi/pi-tui": "12.15.0",
93
+ "@oh-my-pi/pi-utils": "12.15.0",
94
94
  "@sinclair/typebox": "^0.34.48",
95
95
  "@xterm/headless": "^6.0.0",
96
96
  "ajv": "^8.18.0",
@@ -5,24 +5,6 @@ import * as path from "node:path";
5
5
 
6
6
  const docsDir = new URL("../../../docs/", import.meta.url).pathname;
7
7
  const outputPath = new URL("../src/internal-urls/docs-index.generated.ts", import.meta.url).pathname;
8
- const importBase = "../../../../docs";
9
-
10
- function toIdentifier(relativePath: string): string {
11
- const withoutExt = relativePath.replace(/\.md$/i, "");
12
- const parts = withoutExt
13
- .split(/[^a-zA-Z0-9]+/)
14
- .filter(Boolean)
15
- .map((part, index) => {
16
- if (index === 0) {
17
- return part.toLowerCase();
18
- }
19
- return part.charAt(0).toUpperCase() + part.slice(1).toLowerCase();
20
- });
21
-
22
- const base = parts.length > 0 ? parts.join("") : "doc";
23
- const safeBase = /^[0-9]/.test(base) ? `doc${base}` : base;
24
- return `${safeBase}Md`;
25
- }
26
8
 
27
9
  const glob = new Glob("**/*.md");
28
10
  const entries: string[] = [];
@@ -31,26 +13,28 @@ for await (const relativePath of glob.scan(docsDir)) {
31
13
  }
32
14
  entries.sort();
33
15
 
34
- const usedIdentifiers = new Set<string>();
35
- const docs = entries.map((relativePath) => {
36
- let identifier = toIdentifier(relativePath);
37
- let suffix = 2;
38
- while (usedIdentifiers.has(identifier)) {
39
- identifier = `${toIdentifier(relativePath)}${suffix}`;
40
- suffix++;
41
- }
42
- usedIdentifiers.add(identifier);
43
- return { relativePath, identifier };
44
- });
45
- docs.sort((a, b) => a.identifier.localeCompare(b.identifier) || a.relativePath.localeCompare(b.relativePath));
16
+ const docsWithContent = await Promise.all(
17
+ entries.map(async (relativePath) => ({
18
+ relativePath,
19
+ content: await Bun.file(path.join(docsDir, relativePath)).text(),
20
+ }))
21
+ );
46
22
 
47
- const imports = docs
48
- .map(({ relativePath, identifier }) => `import ${identifier} from "${importBase}/${relativePath}" with { type: "text" };`)
49
- .join("\n");
50
-
51
- const mapEntries = docs.map(({ relativePath, identifier }) => `\t"${relativePath}": ${identifier},`).join("\n");
23
+ const filenamesLiteral = JSON.stringify(entries);
52
24
 
53
- const output = `// Auto-generated by scripts/generate-docs-index.ts - DO NOT EDIT\n\n${imports}\n\nexport const EMBEDDED_DOCS: Readonly<Record<string, string>> = {\n${mapEntries}\n};\n\nexport const EMBEDDED_DOC_FILENAMES = Object.keys(EMBEDDED_DOCS).sort();\n`;
25
+ const mapEntries = docsWithContent
26
+ .map(({ relativePath, content }) => `\t${JSON.stringify(relativePath)}: ${JSON.stringify(content)},`)
27
+ .join("\n");
28
+ const output = [
29
+ "// Auto-generated by scripts/generate-docs-index.ts - DO NOT EDIT",
30
+ "",
31
+ `export const EMBEDDED_DOC_FILENAMES: readonly string[] = ${filenamesLiteral};`,
32
+ "",
33
+ `export const EMBEDDED_DOCS: Readonly<Record<string, string>> = {`,
34
+ `${mapEntries}`,
35
+ `};`,
36
+ "",
37
+ ].join("\n");
54
38
 
55
39
  await Bun.write(outputPath, output);
56
- console.log(`Generated ${path.relative(process.cwd(), outputPath)} (${docs.length} docs)`);
40
+ console.log(`Generated ${path.relative(process.cwd(), outputPath)} (${entries.length} docs)`);
@@ -504,7 +504,7 @@ export const SETTINGS_SCHEMA = {
504
504
  },
505
505
  "tools.intentTracing": {
506
506
  type: "boolean",
507
- default: false,
507
+ default: true,
508
508
  ui: {
509
509
  tab: "tools",
510
510
  label: "Intent tracing",