humanish 0.85.1 → 0.86.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/dist/concurrent-shared-world-lab.js +9 -1
- package/dist/concurrent-shared-world-lab.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +6 -1
- package/dist/cua-actor-lab.js +19 -3
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/e2b-desktop-launch.d.ts +4 -1
- package/dist/e2b-desktop-launch.js +31 -8
- package/dist/e2b-desktop-launch.js.map +1 -1
- package/dist/e2b-terminal-lab.js +9 -2
- package/dist/e2b-terminal-lab.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/observer-app.html +9 -9
- package/dist/participant-assignment.d.ts +12 -0
- package/dist/participant-assignment.js +15 -0
- package/dist/participant-assignment.js.map +1 -0
- package/dist/run.d.ts +12 -0
- package/dist/run.js +11 -0
- package/dist/run.js.map +1 -1
- package/dist/shared-world-lab.d.ts +4 -1
- package/dist/shared-world-lab.js +9 -1
- package/dist/shared-world-lab.js.map +1 -1
- package/docs/contracts/run-bundle.md +33 -0
- package/docs/contracts/schemas.md +1 -1
- package/docs/goals/current.md +3 -1
- package/docs/ramp/README.md +6 -1
- package/docs/release/0.86.0-participant-evidence.md +50 -0
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RunParticipantAssignment } from "./run.js";
|
|
2
|
+
/** Project only authored participant-facing fields. Never pass runtime-composed instructions:
|
|
3
|
+
* they can contain inbox URLs or multiplayer grants. Pick fields explicitly so a task's hidden
|
|
4
|
+
* success criteria cannot cross this evidence boundary, even from an untyped library caller. */
|
|
5
|
+
export declare function participantAssignment(assignment: {
|
|
6
|
+
mission: string;
|
|
7
|
+
focus?: string;
|
|
8
|
+
tasks?: readonly {
|
|
9
|
+
id: string;
|
|
10
|
+
goal: string;
|
|
11
|
+
}[];
|
|
12
|
+
}, scrubKnownValues?: (text: string) => string): RunParticipantAssignment;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { redactText } from "./redaction.js";
|
|
2
|
+
/** Project only authored participant-facing fields. Never pass runtime-composed instructions:
|
|
3
|
+
* they can contain inbox URLs or multiplayer grants. Pick fields explicitly so a task's hidden
|
|
4
|
+
* success criteria cannot cross this evidence boundary, even from an untyped library caller. */
|
|
5
|
+
export function participantAssignment(assignment, scrubKnownValues = (text) => text) {
|
|
6
|
+
const sanitize = (text) => redactText(scrubKnownValues(text));
|
|
7
|
+
return {
|
|
8
|
+
mission: sanitize(assignment.mission),
|
|
9
|
+
...(assignment.focus === undefined ? {} : { focus: sanitize(assignment.focus) }),
|
|
10
|
+
...(assignment.tasks === undefined ? {} : {
|
|
11
|
+
tasks: assignment.tasks.map(({ id, goal }) => ({ id: sanitize(id), goal: sanitize(goal) }))
|
|
12
|
+
})
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=participant-assignment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"participant-assignment.js","sourceRoot":"","sources":["../src/participant-assignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;gGAEgG;AAChG,MAAM,UAAU,qBAAqB,CACnC,UAAgG,EAChG,mBAA6C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;IAE3D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5F,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/dist/run.d.ts
CHANGED
|
@@ -334,6 +334,15 @@ export interface RunDesktopGeometry {
|
|
|
334
334
|
/** Public-safe geometry measurement/fill warnings retained with the stream evidence. */
|
|
335
335
|
warnings?: string[];
|
|
336
336
|
}
|
|
337
|
+
/** The original participant-facing assignment, before runtime access/coordination details. */
|
|
338
|
+
export interface RunParticipantAssignment {
|
|
339
|
+
mission: string;
|
|
340
|
+
focus?: string;
|
|
341
|
+
tasks?: Array<{
|
|
342
|
+
id: string;
|
|
343
|
+
goal: string;
|
|
344
|
+
}>;
|
|
345
|
+
}
|
|
337
346
|
export interface RunStream {
|
|
338
347
|
id: string;
|
|
339
348
|
simId: string;
|
|
@@ -345,6 +354,9 @@ export interface RunStream {
|
|
|
345
354
|
surface?: string;
|
|
346
355
|
/** Adapter-owned scenario/case grouping label. */
|
|
347
356
|
caseGroup?: string;
|
|
357
|
+
/** Authored/default mission and lane focus, redacted before persistence. Missing on older
|
|
358
|
+
* bundles and uninstrumented routes; never reconstructed from study context or narration. */
|
|
359
|
+
assignment?: RunParticipantAssignment;
|
|
348
360
|
kind: RunStreamKind;
|
|
349
361
|
label: string;
|
|
350
362
|
status: RunSimulationStatus;
|
package/dist/run.js
CHANGED
|
@@ -5336,12 +5336,23 @@ function isRunStream(value) {
|
|
|
5336
5336
|
&& isRunSimulationStatus(value.status)
|
|
5337
5337
|
&& (value.transport === "snapshot" || value.transport === "polling" || value.transport === "sse" || value.transport === "pty" || value.transport === "app-server")
|
|
5338
5338
|
&& typeof value.updatedAt === "string"
|
|
5339
|
+
&& (value.assignment === undefined || isRunParticipantAssignment(value.assignment))
|
|
5339
5340
|
&& (value.viewport === undefined || isRunViewport(value.viewport))
|
|
5340
5341
|
&& (value.desktopGeometry === undefined || isRunDesktopGeometry(value.desktopGeometry))
|
|
5341
5342
|
&& hasConsistentStreamGeometry(value)
|
|
5342
5343
|
&& Array.isArray(value.artifacts)
|
|
5343
5344
|
&& value.artifacts.every(isRunStreamArtifact);
|
|
5344
5345
|
}
|
|
5346
|
+
function isRunParticipantAssignment(value) {
|
|
5347
|
+
return isRecord(value)
|
|
5348
|
+
&& Object.keys(value).every((key) => key === "mission" || key === "focus" || key === "tasks")
|
|
5349
|
+
&& typeof value.mission === "string"
|
|
5350
|
+
&& (value.focus === undefined || typeof value.focus === "string")
|
|
5351
|
+
&& (value.tasks === undefined || (Array.isArray(value.tasks) && value.tasks.every((task) => isRecord(task)
|
|
5352
|
+
&& Object.keys(task).every((key) => key === "id" || key === "goal")
|
|
5353
|
+
&& typeof task.id === "string"
|
|
5354
|
+
&& typeof task.goal === "string")));
|
|
5355
|
+
}
|
|
5345
5356
|
function isRunViewport(value) {
|
|
5346
5357
|
return isRecord(value)
|
|
5347
5358
|
&& isPositiveFiniteNumber(value.width)
|