@kujolang/paperclip 0.1.0 → 0.1.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.
- package/CHANGELOG.md +10 -10
- package/README.md +1 -1
- package/VERSION +1 -1
- package/dist/manifest.js +2 -2
- package/dist/worker.js +35 -16
- package/docs/COMPATIBILITY.md +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.2 - 2026-09-02
|
|
4
|
+
|
|
5
|
+
- Publish through npm trusted publishing with short-lived GitHub Actions identity tokens instead of a stored npm token.
|
|
6
|
+
- Verify the published package through a clean public-registry installation before creating the GitHub release.
|
|
7
|
+
|
|
8
|
+
## 0.1.1 - 2026-09-02
|
|
9
|
+
|
|
10
|
+
- Work around Paperclip `2026.831.1` reporting host version `0.0.0` to the plugin loader while retaining the documented `2026.824.1` support floor.
|
|
11
|
+
- Complete Windows component fallbacks and cross-platform npm verification.
|
|
12
|
+
|
|
3
13
|
## 0.1.0 - 2026-09-02
|
|
4
14
|
|
|
5
15
|
- Add Review Pack, Failure Evidence, and Context Pack tools and UI actions for Paperclip.
|
|
6
16
|
- Bundle and verify ChangeBucket, PatchBrief, CaseFile, and Scent component snapshots.
|
|
7
17
|
- Enforce company-scoped state, feature policy, stale-context rejection, workspace bounds, hostile Git configuration suppression, and process-tree cleanup.
|
|
8
18
|
- Add cross-platform compatibility, dependency review, CodeQL, SBOM, provenance, signed-tag, and exact-tarball release controls.
|
|
9
|
-
|
|
10
|
-
## 0.1.0
|
|
11
|
-
|
|
12
|
-
- Initial Paperclip-native Review Pack, Failure Evidence, and Context Pack.
|
|
13
|
-
- Lifecycle-script-free Kujo runtime resolution and deterministic component bundle.
|
|
14
|
-
- Strict workspace, process, output, redaction, schema, provenance, and stale-state boundaries.
|
|
15
|
-
- Monochrome project badges and install-first ecosystem documentation.
|
|
16
|
-
- Root agent, contribution, security, and version contracts.
|
|
17
|
-
- Reproducible lockfile-based CI and npm release gates.
|
|
18
|
-
- Exact Kujo `1.2.2` runtime dependency with the restored Windows package build.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Kujo for Paperclip
|
|
2
2
|
|
|
3
|
-
[](https://github.com/kujolang/paperclip/releases/tag/v0.1.2)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://github.com/kujolang/kujo)
|
|
6
6
|
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.2
|
package/dist/manifest.js
CHANGED
|
@@ -14527,8 +14527,8 @@ var DEFAULT_LIMITS = {
|
|
|
14527
14527
|
maxInputLogBytes: 2e5,
|
|
14528
14528
|
maxContextFileBytes: 2e3
|
|
14529
14529
|
};
|
|
14530
|
-
var PLUGIN_VERSION = "0.1.
|
|
14531
|
-
var MINIMUM_HOST_VERSION = "
|
|
14530
|
+
var PLUGIN_VERSION = "0.1.2";
|
|
14531
|
+
var MINIMUM_HOST_VERSION = "0.0.0";
|
|
14532
14532
|
|
|
14533
14533
|
// src/config/schema.ts
|
|
14534
14534
|
var pluginConfigSchema = external_exports.object({
|
package/dist/worker.js
CHANGED
|
@@ -28926,7 +28926,7 @@ var CONTEXT_BUDGETS = {
|
|
|
28926
28926
|
focused: 16e3,
|
|
28927
28927
|
broad: 4e4
|
|
28928
28928
|
};
|
|
28929
|
-
var PLUGIN_VERSION = "0.1.
|
|
28929
|
+
var PLUGIN_VERSION = "0.1.2";
|
|
28930
28930
|
var PAPERCLIP_API_VERSION = 1;
|
|
28931
28931
|
|
|
28932
28932
|
// src/config/schema.ts
|
|
@@ -29440,7 +29440,7 @@ async function runComponent(input) {
|
|
|
29440
29440
|
executable: runtime.executable,
|
|
29441
29441
|
cwd: input.cwd,
|
|
29442
29442
|
args: invocation,
|
|
29443
|
-
timeoutMs: input.config.limits.timeoutMs,
|
|
29443
|
+
timeoutMs: Math.min(input.timeoutMs ?? input.config.limits.timeoutMs, input.config.limits.timeoutMs),
|
|
29444
29444
|
maxStdoutBytes: input.config.limits.maxStdoutBytes,
|
|
29445
29445
|
maxStderrBytes: input.config.limits.maxStderrBytes
|
|
29446
29446
|
});
|
|
@@ -29610,7 +29610,7 @@ async function prepareContextWorkspace(cwd, task) {
|
|
|
29610
29610
|
timeout: 1e4,
|
|
29611
29611
|
windowsHide: true
|
|
29612
29612
|
});
|
|
29613
|
-
return { path: mirror, cleanup: async () => await removeTree(mirror) };
|
|
29613
|
+
return { path: mirror, selectedPaths: paths, cleanup: async () => await removeTree(mirror) };
|
|
29614
29614
|
} catch (error51) {
|
|
29615
29615
|
await removeTree(mirror);
|
|
29616
29616
|
throw error51;
|
|
@@ -30070,14 +30070,33 @@ async function generateContextPack(input) {
|
|
|
30070
30070
|
if (process.platform !== "win32") {
|
|
30071
30071
|
for (const exclusion of EXCLUSIONS) args.push("--exclude", exclusion);
|
|
30072
30072
|
}
|
|
30073
|
-
|
|
30074
|
-
|
|
30075
|
-
|
|
30076
|
-
|
|
30077
|
-
|
|
30078
|
-
|
|
30079
|
-
|
|
30080
|
-
|
|
30073
|
+
let result;
|
|
30074
|
+
let output;
|
|
30075
|
+
try {
|
|
30076
|
+
result = await runComponent({
|
|
30077
|
+
component: "context",
|
|
30078
|
+
cwd: workspace.path,
|
|
30079
|
+
args,
|
|
30080
|
+
config: input.config,
|
|
30081
|
+
acceptExitCodes: process.platform === "win32" ? [0, 1] : [0],
|
|
30082
|
+
timeoutMs: 8e3
|
|
30083
|
+
});
|
|
30084
|
+
output = JSON.parse(await readFile4(join5(temp, "context.json"), "utf8"));
|
|
30085
|
+
} catch (error51) {
|
|
30086
|
+
if (!(error51 instanceof KujoPluginError) || error51.code !== "KUJO_EXEC_TIMEOUT") throw error51;
|
|
30087
|
+
const selected = workspace.selectedPaths.slice(0, MAX_FILES2[input.depth]);
|
|
30088
|
+
output = {
|
|
30089
|
+
selected_files: selected.map((path2, index) => ({
|
|
30090
|
+
path: path2,
|
|
30091
|
+
reason: "Selected by Paperclip's bounded task-path fallback",
|
|
30092
|
+
score: Math.max(1, selected.length - index)
|
|
30093
|
+
})),
|
|
30094
|
+
estimated_tokens: selected.length * Math.ceil(DEFAULT_LIMITS.maxContextFileBytes / 4),
|
|
30095
|
+
excluded: workspace.selectedPaths.slice(selected.length),
|
|
30096
|
+
truncated: workspace.selectedPaths.length >= selected.length,
|
|
30097
|
+
warnings: ["Canonical context selection exceeded its bounded execution window"]
|
|
30098
|
+
};
|
|
30099
|
+
}
|
|
30081
30100
|
const files = (output.selected_files ?? []).flatMap((file2) => {
|
|
30082
30101
|
if (typeof file2.path !== "string") return [];
|
|
30083
30102
|
return [{
|
|
@@ -30089,7 +30108,7 @@ async function generateContextPack(input) {
|
|
|
30089
30108
|
});
|
|
30090
30109
|
const estimatedTokens = typeof output.estimated_tokens === "number" ? Math.max(0, Math.trunc(output.estimated_tokens)) : 0;
|
|
30091
30110
|
const truncated = output.truncated === true || estimatedTokens > budget || files.length >= MAX_FILES2[input.depth];
|
|
30092
|
-
const cacheKey = createHash3("sha256").update(`${input.workspaceId}\0${snapshot.fingerprint}\0${task.toLowerCase()}\0${input.depth}\0${result
|
|
30111
|
+
const cacheKey = createHash3("sha256").update(`${input.workspaceId}\0${snapshot.fingerprint}\0${task.toLowerCase()}\0${input.depth}\0${result?.componentVersion ?? PLUGIN_VERSION}`).digest("hex");
|
|
30093
30112
|
return contextPackSchema.parse({
|
|
30094
30113
|
schemaVersion: 1,
|
|
30095
30114
|
id: `context_${randomUUID3()}`,
|
|
@@ -30110,10 +30129,10 @@ async function generateContextPack(input) {
|
|
|
30110
30129
|
cacheKey,
|
|
30111
30130
|
provenance: {
|
|
30112
30131
|
pluginVersion: PLUGIN_VERSION,
|
|
30113
|
-
kujoRuntimeVersion: result
|
|
30114
|
-
componentId: result
|
|
30115
|
-
componentVersion: result
|
|
30116
|
-
componentCommit: result
|
|
30132
|
+
kujoRuntimeVersion: result?.runtimeVersion ?? "bounded-fallback",
|
|
30133
|
+
componentId: result?.component ?? "paperclip-context-fallback",
|
|
30134
|
+
componentVersion: result?.componentVersion ?? PLUGIN_VERSION,
|
|
30135
|
+
componentCommit: result?.componentCommit ?? "bundled"
|
|
30117
30136
|
}
|
|
30118
30137
|
});
|
|
30119
30138
|
} finally {
|
package/docs/COMPATIBILITY.md
CHANGED
|
@@ -13,6 +13,7 @@ The plugin supports macOS arm64/x64, Linux arm64/x64, and Windows x64. CI runs t
|
|
|
13
13
|
## Change rules
|
|
14
14
|
|
|
15
15
|
- Patch releases keep the same artifact schemas and minimum host train.
|
|
16
|
+
- Paperclip `2026.831.1` reports `0.0.0` to its plugin loader. The manifest gate is neutralized for that host defect; install documentation and the tested SDK matrix remain authoritative for the supported host floor.
|
|
16
17
|
- Before 1.0, a minor release may add fields or raise a minimum version. The changelog must call out either change.
|
|
17
18
|
- Readers accept additive fields but reject unknown schema versions.
|
|
18
19
|
- Context content requires the same company, project, workspace, and Git snapshot that produced the pack.
|
package/package.json
CHANGED