@ponythewhite/base-context 1.0.5 → 1.0.7

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 (42) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/base-context-runtime/pyproject.toml +1 -1
  3. package/dist/base-context-runtime/uv.lock +1 -1
  4. package/dist/build-info.json +1 -1
  5. package/dist/bundle/{bundled-modules-UVCJPNFC.js → bundled-modules-PS66L3IT.js} +2 -2
  6. package/dist/bundle/{chunk-WFJRFQGG.js → chunk-PFROC4EV.js} +4 -3
  7. package/dist/bundle/{chunk-6FZM46AU.js → chunk-VCW3YDFF.js} +90 -47
  8. package/dist/bundle/{cli-main-OYVMMJUO.js → cli-main-MMHTK7EB.js} +2 -2
  9. package/dist/bundle/cli.js +1 -1
  10. package/dist/bundle/{main-AVMYOTHF.js → main-XAIVH4Y7.js} +2 -2
  11. package/dist/cli/product-doctor.d.ts.map +1 -1
  12. package/dist/cli/product-doctor.js +2 -2
  13. package/dist/cli/product-doctor.js.map +1 -1
  14. package/dist/core/agent-session.d.ts.map +1 -1
  15. package/dist/core/agent-session.js +23 -12
  16. package/dist/core/agent-session.js.map +1 -1
  17. package/dist/core/canonical-context.d.ts +3 -1
  18. package/dist/core/canonical-context.d.ts.map +1 -1
  19. package/dist/core/canonical-context.js +46 -16
  20. package/dist/core/canonical-context.js.map +1 -1
  21. package/dist/core/context-epoch-copy.d.ts.map +1 -1
  22. package/dist/core/context-epoch-copy.js +1 -1
  23. package/dist/core/context-epoch-copy.js.map +1 -1
  24. package/dist/core/context-epoch.d.ts +13 -3
  25. package/dist/core/context-epoch.d.ts.map +1 -1
  26. package/dist/core/context-epoch.js +47 -24
  27. package/dist/core/context-epoch.js.map +1 -1
  28. package/dist/core/inference-coordinator.d.ts.map +1 -1
  29. package/dist/core/inference-coordinator.js +3 -1
  30. package/dist/core/inference-coordinator.js.map +1 -1
  31. package/dist/core/request-view-selection.d.ts +3 -3
  32. package/dist/core/request-view-selection.d.ts.map +1 -1
  33. package/dist/core/request-view-selection.js +14 -7
  34. package/dist/core/request-view-selection.js.map +1 -1
  35. package/dist/core/sdk.d.ts.map +1 -1
  36. package/dist/core/sdk.js +1 -1
  37. package/dist/core/sdk.js.map +1 -1
  38. package/dist/core/session-bootstrap.d.ts +1 -0
  39. package/dist/core/session-bootstrap.d.ts.map +1 -1
  40. package/dist/core/session-bootstrap.js +1 -1
  41. package/dist/core/session-bootstrap.js.map +1 -1
  42. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"product-doctor.js","sourceRoot":"","sources":["../../src/cli/product-doctor.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { getOAuthProviders } from \"@ponythewhite/base-context-ai/oauth\";\nimport {\n\tgetBinDir,\n\tgetBundledSkillsDir,\n\tgetCustomThemesDir,\n\tgetLogsDir,\n\tgetPackageDir,\n\tgetPackageJsonPath,\n\tVERSION,\n} from \"../config.js\";\nimport {\n\tCONTEXT_EPOCH_RENDERER,\n\tCONTEXT_POLICY_EPOCH_RENDERER,\n\tCONTEXT_SKILL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_EPOCH_RENDERER,\n} from \"../core/context-epoch.js\";\nimport { getKernelVenvDir, runtimeCandidateDirs } from \"../core/kernel/bootstrap.js\";\nimport { getProviderAuthContract } from \"../core/provider-contracts.js\";\nimport { CURRENT_SESSION_VERSION } from \"../core/session-manager.js\";\nimport { DAEMON_PROTOCOL_INFO, DAEMON_SCHEMA_ID } from \"../modes/daemon/daemon-protocol.js\";\nimport { defaultDaemonSocketDir, defaultDaemonSocketPath } from \"../modes/daemon/daemon-socket.js\";\nimport { PRODUCT, PRODUCT_ENV } from \"../product-identity.js\";\nimport { readAbsolutePathEnv, resolveRuntimePaths } from \"../runtime-paths.js\";\n\n/** Local metadata only: never load credential contents or export diagnostics. */\nexport function getProductDiagnostics() {\n\tconst paths = resolveRuntimePaths();\n\tconst packageDir = getPackageDir();\n\tconst metadata = JSON.parse(readFileSync(getPackageJsonPath(), \"utf8\")) as {\n\t\tbaseContext?: { upstreamVersion?: string; upstreamCommit?: string };\n\t};\n\tconst buildPath = [join(packageDir, \"dist\", \"build-info.json\"), join(packageDir, \"build-info.json\")].find(\n\t\texistsSync,\n\t);\n\tconst build = buildPath\n\t\t? (JSON.parse(readFileSync(buildPath, \"utf8\")) as { sourceCommit?: string; sourceDirty?: boolean })\n\t\t: {};\n\treturn {\n\t\tproduct: { name: PRODUCT.name, package: PRODUCT.packageName, version: VERSION },\n\t\tsource: {\n\t\t\trepository: PRODUCT.repository,\n\t\t\tcommit: build.sourceCommit ?? null,\n\t\t\tdirty: build.sourceDirty ?? null,\n\t\t\tupstreamVersion: metadata.baseContext?.upstreamVersion ?? null,\n\t\t\tupstreamCommit: metadata.baseContext?.upstreamCommit ?? null,\n\t\t},\n\t\tschemas: {\n\t\t\tdaemon: DAEMON_PROTOCOL_INFO,\n\t\t\tdaemonSchema: DAEMON_SCHEMA_ID,\n\t\t\tsession: CURRENT_SESSION_VERSION,\n\t\t\tnativeContext: `${CONTEXT_EPOCH_RENDERER} (request), ${CONTEXT_POLICY_EPOCH_RENDERER} (policy), ${CONTEXT_TOOL_EPOCH_RENDERER} (tool continuation), ${CONTEXT_SKILL_EPOCH_RENDERER} (selected skills)`,\n\t\t},\n\t\tpaths: {\n\t\t\t...paths,\n\t\t\tpackage: packageDir,\n\t\t\truntime: getKernelVenvDir(),\n\t\t\tkernelPythonOverride: readAbsolutePathEnv(PRODUCT_ENV.kernelPython) ?? null,\n\t\t\truntimeSource:\n\t\t\t\truntimeCandidateDirs().find((candidate) => existsSync(join(candidate, \"pyproject.toml\"))) ?? null,\n\t\t\tlogs: getLogsDir(),\n\t\t\tbinaries: getBinDir(),\n\t\t\tbundledSkills: getBundledSkillsDir(),\n\t\t\tcustomThemes: getCustomThemesDir(),\n\t\t\tsettings: join(paths.home, \"settings.json\"),\n\t\t\tprojectSettings: join(paths.project, \"settings.json\"),\n\t\t\tdaemonSockets: defaultDaemonSocketDir(),\n\t\t\tdefaultDaemonSocket: defaultDaemonSocketPath(),\n\t\t},\n\t\tproviderContracts: [\n\t\t\t...getOAuthProviders().map((provider) => getProviderAuthContract(provider.id)),\n\t\t\tgetProviderAuthContract(\"prime-intellect\"),\n\t\t],\n\t};\n}\n\nexport type ProductDiagnostics = ReturnType<typeof getProductDiagnostics>;\n\nexport function formatProductDiagnostics(report: ProductDiagnostics): string {\n\tconst lines = [\n\t\t`${report.product.name} ${report.product.version} (${report.product.package})`,\n\t\t`Source build: ${report.source.commit ?? \"unknown (no build metadata)\"}; dirty: ${report.source.dirty ?? \"unknown\"}`,\n\t\t`Upstream: ${report.source.upstreamVersion ?? \"unknown\"} (${report.source.upstreamCommit ?? \"unknown\"})`,\n\t\t`Schemas: daemon ${report.schemas.daemon.version}, session ${report.schemas.session}; native context: ${report.schemas.nativeContext}`,\n\t\t\"Resolved paths:\",\n\t\t...Object.entries(report.paths).map(([name, value]) => ` ${name}: ${value ?? \"not set\"}`),\n\t\t\"Provider OAuth contracts:\",\n\t\t...report.providerContracts.map(\n\t\t\t(contract) => ` ${contract.providerId}: ${contract.oauth}. ${contract.guidance}`,\n\t\t),\n\t];\n\treturn lines.join(\"\\n\");\n}\n"]}
1
+ {"version":3,"file":"product-doctor.js","sourceRoot":"","sources":["../../src/cli/product-doctor.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { getOAuthProviders } from \"@ponythewhite/base-context-ai/oauth\";\nimport {\n\tgetBinDir,\n\tgetBundledSkillsDir,\n\tgetCustomThemesDir,\n\tgetLogsDir,\n\tgetPackageDir,\n\tgetPackageJsonPath,\n\tVERSION,\n} from \"../config.js\";\nimport {\n\tCONTEXT_EPOCH_RENDERER,\n\tCONTEXT_POLICY_EPOCH_RENDERER,\n\tCONTEXT_SKILL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_SUMMARY_RENDERER,\n} from \"../core/context-epoch.js\";\nimport { getKernelVenvDir, runtimeCandidateDirs } from \"../core/kernel/bootstrap.js\";\nimport { getProviderAuthContract } from \"../core/provider-contracts.js\";\nimport { CURRENT_SESSION_VERSION } from \"../core/session-manager.js\";\nimport { DAEMON_PROTOCOL_INFO, DAEMON_SCHEMA_ID } from \"../modes/daemon/daemon-protocol.js\";\nimport { defaultDaemonSocketDir, defaultDaemonSocketPath } from \"../modes/daemon/daemon-socket.js\";\nimport { PRODUCT, PRODUCT_ENV } from \"../product-identity.js\";\nimport { readAbsolutePathEnv, resolveRuntimePaths } from \"../runtime-paths.js\";\n\n/** Local metadata only: never load credential contents or export diagnostics. */\nexport function getProductDiagnostics() {\n\tconst paths = resolveRuntimePaths();\n\tconst packageDir = getPackageDir();\n\tconst metadata = JSON.parse(readFileSync(getPackageJsonPath(), \"utf8\")) as {\n\t\tbaseContext?: { upstreamVersion?: string; upstreamCommit?: string };\n\t};\n\tconst buildPath = [join(packageDir, \"dist\", \"build-info.json\"), join(packageDir, \"build-info.json\")].find(\n\t\texistsSync,\n\t);\n\tconst build = buildPath\n\t\t? (JSON.parse(readFileSync(buildPath, \"utf8\")) as { sourceCommit?: string; sourceDirty?: boolean })\n\t\t: {};\n\treturn {\n\t\tproduct: { name: PRODUCT.name, package: PRODUCT.packageName, version: VERSION },\n\t\tsource: {\n\t\t\trepository: PRODUCT.repository,\n\t\t\tcommit: build.sourceCommit ?? null,\n\t\t\tdirty: build.sourceDirty ?? null,\n\t\t\tupstreamVersion: metadata.baseContext?.upstreamVersion ?? null,\n\t\t\tupstreamCommit: metadata.baseContext?.upstreamCommit ?? null,\n\t\t},\n\t\tschemas: {\n\t\t\tdaemon: DAEMON_PROTOCOL_INFO,\n\t\t\tdaemonSchema: DAEMON_SCHEMA_ID,\n\t\t\tsession: CURRENT_SESSION_VERSION,\n\t\t\tnativeContext: `${CONTEXT_EPOCH_RENDERER} (request), ${CONTEXT_POLICY_EPOCH_RENDERER} (policy), ${CONTEXT_TOOL_EPOCH_RENDERER} (tool continuation), ${CONTEXT_SKILL_EPOCH_RENDERER} (selected skills), ${CONTEXT_TOOL_SUMMARY_RENDERER} (tool summary)`,\n\t\t},\n\t\tpaths: {\n\t\t\t...paths,\n\t\t\tpackage: packageDir,\n\t\t\truntime: getKernelVenvDir(),\n\t\t\tkernelPythonOverride: readAbsolutePathEnv(PRODUCT_ENV.kernelPython) ?? null,\n\t\t\truntimeSource:\n\t\t\t\truntimeCandidateDirs().find((candidate) => existsSync(join(candidate, \"pyproject.toml\"))) ?? null,\n\t\t\tlogs: getLogsDir(),\n\t\t\tbinaries: getBinDir(),\n\t\t\tbundledSkills: getBundledSkillsDir(),\n\t\t\tcustomThemes: getCustomThemesDir(),\n\t\t\tsettings: join(paths.home, \"settings.json\"),\n\t\t\tprojectSettings: join(paths.project, \"settings.json\"),\n\t\t\tdaemonSockets: defaultDaemonSocketDir(),\n\t\t\tdefaultDaemonSocket: defaultDaemonSocketPath(),\n\t\t},\n\t\tproviderContracts: [\n\t\t\t...getOAuthProviders().map((provider) => getProviderAuthContract(provider.id)),\n\t\t\tgetProviderAuthContract(\"prime-intellect\"),\n\t\t],\n\t};\n}\n\nexport type ProductDiagnostics = ReturnType<typeof getProductDiagnostics>;\n\nexport function formatProductDiagnostics(report: ProductDiagnostics): string {\n\tconst lines = [\n\t\t`${report.product.name} ${report.product.version} (${report.product.package})`,\n\t\t`Source build: ${report.source.commit ?? \"unknown (no build metadata)\"}; dirty: ${report.source.dirty ?? \"unknown\"}`,\n\t\t`Upstream: ${report.source.upstreamVersion ?? \"unknown\"} (${report.source.upstreamCommit ?? \"unknown\"})`,\n\t\t`Schemas: daemon ${report.schemas.daemon.version}, session ${report.schemas.session}; native context: ${report.schemas.nativeContext}`,\n\t\t\"Resolved paths:\",\n\t\t...Object.entries(report.paths).map(([name, value]) => ` ${name}: ${value ?? \"not set\"}`),\n\t\t\"Provider OAuth contracts:\",\n\t\t...report.providerContracts.map(\n\t\t\t(contract) => ` ${contract.providerId}: ${contract.oauth}. ${contract.guidance}`,\n\t\t),\n\t];\n\treturn lines.join(\"\\n\");\n}\n"]}